Select one of the symbols to view example projects that use it.
 
Outline
#define OPENOCD_TARGET_ARM_JTAG_H
#include <jtag/jtag.h>
#include <helper/bits.h>
arm_jtag
arm_jtag_set_instr_inner(struct jtag_tap *, uint32_t, void *, tap_state_t);
arm_jtag_set_instr(struct jtag_tap *, uint32_t, void *, tap_state_t)
arm_jtag_scann_inner(struct arm_jtag *, uint32_t, tap_state_t);
arm_jtag_scann(struct arm_jtag *, uint32_t, tap_state_t)
arm_jtag_setup_connection(struct arm_jtag *);
arm_jtag_close_connection(struct arm_jtag *);
arm7flip32(jtag_callback_data_t)
arm_le_to_h_u32(jtag_callback_data_t)
Files
loading...
CodeScopeDevelopment ToolsOpenOCDsrc/target/arm_jtag.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* SPDX-License-Identifier: GPL-2.0-or-later */ /*************************************************************************** * Copyright (C) 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * * Copyright (C) 2007-2010 Øyvind Harboe * * oyvind.harboe@zylin.com * ***************************************************************************//* ... */ #ifndef OPENOCD_TARGET_ARM_JTAG_H #define OPENOCD_TARGET_ARM_JTAG_H #include <jtag/jtag.h> #include <helper/bits.h> struct arm_jtag { struct jtag_tap *tap; uint32_t scann_size; uint32_t scann_instr; uint32_t cur_scan_chain; uint32_t intest_instr; ...}; int arm_jtag_set_instr_inner(struct jtag_tap *tap, uint32_t new_instr, void *no_verify_capture, tap_state_t end_state); static inline int arm_jtag_set_instr(struct jtag_tap *tap, uint32_t new_instr, void *no_verify_capture, tap_state_t end_state) { /* inline most common code path */ if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != (new_instr & (BIT(tap->ir_length) - 1))) return arm_jtag_set_instr_inner(tap, new_instr, no_verify_capture, end_state); return ERROR_OK; }{ ... } int arm_jtag_scann_inner(struct arm_jtag *jtag_info, uint32_t new_scan_chain, tap_state_t end_state); static inline int arm_jtag_scann(struct arm_jtag *jtag_info, uint32_t new_scan_chain, tap_state_t end_state) { /* inline most common code path */ int retval = ERROR_OK; if (jtag_info->cur_scan_chain != new_scan_chain) return arm_jtag_scann_inner(jtag_info, new_scan_chain, end_state); return retval; }{ ... } int arm_jtag_setup_connection(struct arm_jtag *jtag_info); int arm_jtag_close_connection(struct arm_jtag *jtag_info); /* use this as a static so we can inline it in -O3 and refer to it via a pointer */ static inline void arm7flip32(jtag_callback_data_t arg) { uint8_t *in = (uint8_t *)arg; *((uint32_t *)arg) = flip_u32(le_to_h_u32(in), 32); }{ ... } static inline void arm_le_to_h_u32(jtag_callback_data_t arg) { uint8_t *in = (uint8_t *)arg; *((uint32_t *)arg) = le_to_h_u32(in); }{ ... } /* ... */#endif /* OPENOCD_TARGET_ARM_JTAG_H */