10 #define ADIV5_DP_IDCODE 0x0
11 #define ADIV5_DP_ABORT 0x0
12 #define ADIV5_DP_CTRLSTAT 0x4
13 #define ADIV5_DP_SELECT 0x8
14 #define ADIV5_DP_RDBUFF 0xC
18 #define ADIV5_DP_ABORT_ORUNERRCLR (1 << 4)
19 #define ADIV5_DP_ABORT_WDERRCLR (1 << 3)
20 #define ADIV5_DP_ABORT_STKERRCLR (1 << 2)
21 #define ADIV5_DP_ABORT_STKCMPCLR (1 << 1)
23 #define ADIV5_DP_ABORT_DAPABORT (1 << 0)
26 #define ADIV5_DP_CTRLSTAT_CSYSPWRUPACK (1u << 31)
27 #define ADIV5_DP_CTRLSTAT_CSYSPWRUPREQ (1u << 30)
28 #define ADIV5_DP_CTRLSTAT_CDBGPWRUPACK (1u << 29)
29 #define ADIV5_DP_CTRLSTAT_CDBGPWRUPREQ (1u << 28)
30 #define ADIV5_DP_CTRLSTAT_CDBGRSTACK (1u << 27)
31 #define ADIV5_DP_CTRLSTAT_CDBGRSTREQ (1u << 26)
34 #define ADIV5_DP_CTRLSTAT_TRNCNT
36 #define ADIV5_DP_CTRLSTAT_MASKLANE
38 #define ADIV5_DP_CTRLSTAT_WDATAERR (1u << 7)
39 #define ADIV5_DP_CTRLSTAT_READOK (1u << 6)
40 #define ADIV5_DP_CTRLSTAT_STICKYERR (1u << 5)
41 #define ADIV5_DP_CTRLSTAT_STICKYCMP (1u << 4)
42 #define ADIV5_DP_CTRLSTAT_TRNMODE_MASK (3u << 2)
43 #define ADIV5_DP_CTRLSTAT_STICKYORUN (1u << 1)
44 #define ADIV5_DP_CTRLSTAT_ORUNDETECT (1u << 0)
48 #define ADIV5_AP_CSW 0x00
49 #define ADIV5_AP_TAR 0x04
51 #define ADIV5_AP_DRW 0x0C
52 #define ADIV5_AP_DB(x) (0x10 + (4*(x)))
54 #define ADIV5_AP_CFG 0xF4
55 #define ADIV5_AP_BASE 0xF8
56 #define ADIV5_AP_IDR 0xFC
59 #define ADIV5_AP_CSW_DBGSWENABLE (1u << 31)
61 #define ADIV5_AP_CSW_MASTERTYPE_DEBUG (1u << 29)
62 #define ADIV5_AP_CSW_HPROT1 (1u << 25)
63 #define ADIV5_AP_CSW_SPIDEN (1u << 23)
66 #define ADIV5_AP_CSW_TRINPROG (1u << 7)
67 #define ADIV5_AP_CSW_DEVICEEN (1u << 6)
68 #define ADIV5_AP_CSW_ADDRINC_NONE (0u << 4)
69 #define ADIV5_AP_CSW_ADDRINC_SINGLE (1u << 4)
70 #define ADIV5_AP_CSW_ADDRINC_PACKED (2u << 4)
71 #define ADIV5_AP_CSW_ADDRINC_MASK (3u << 4)
73 #define ADIV5_AP_CSW_SIZE_BYTE (0u << 0)
74 #define ADIV5_AP_CSW_SIZE_HALFWORD (1u << 0)
75 #define ADIV5_AP_CSW_SIZE_WORD (2u << 0)
76 #define ADIV5_AP_CSW_SIZE_MASK (7u << 0)
79 #define ADIV5_LOW_WRITE 0
80 #define ADIV5_LOW_READ 1
81 #define ADIV5_LOW_DP 0
82 #define ADIV5_LOW_AP 1
114 void dp_write (uint8_t addr, uint32_t value);
116 uint32_t
dp_read (uint8_t addr);
118 uint32_t
error (
void);
129 uint8_t addr, uint32_t value);
167 void ap_write (uint8_t addr, uint32_t value);
169 uint32_t
ap_read (uint8_t addr);
196 #endif // ADIV5APDP_H
uint32_t ap_mem_read(uint32_t addr)
čtení AP paměti.
Data Point Tohle je celé poněkud divně strukturované. Moc nechápu, jak by to mělo být správně...
Definition: adiv5apdp.h:94
ADIv5AP * ap
Zároveň je potřeba i Access Point.
Definition: adiv5apdp.h:140
uint32_t base
???
Definition: adiv5apdp.h:179
ADIv5DP * dp
Zase je zde potřeba přístup na DP.
Definition: adiv5apdp.h:174
uint8_t APnDP
< Init / IO
Definition: swdp.h:160
APDP zapouzdření Asi to mělo být trochu jinak, ale takhle jednoduše to bude také dobře. Tato struktura bude součástí targetu.
Definition: adiv5apdp.h:187
ADIv5DP dp
Data Point.
Definition: adiv5apdp.h:193
uint32_t error(void)
Zjištění chybového stavu.
uint32_t ap_read(uint8_t addr)
Čtení AP.
uint8_t RnW
Read / Write.
Definition: swdp.h:162
uint32_t low_access(uint8_t APnDP, uint8_t RnW, uint8_t addr, uint32_t value)
Obal na nízkoúrovňový přístup pro Swdp.
void ap_mem_write(uint32_t addr, uint32_t value)
zápis AP paměti
uint32_t apsel
???
Definition: adiv5apdp.h:175
uint32_t cfg
???
Definition: adiv5apdp.h:178
uint32_t allow_timeout
Zřejmě k ničemu.
Definition: adiv5apdp.h:145
uint32_t dp_read_ap(uint8_t addr)
Čerti vědí
void ap_write(uint8_t addr, uint32_t value)
Zápis AP.
void ap_mem_write_halfword(uint32_t addr, uint16_t value)
zápis AP paměti (16 bit)
uint16_t ap_mem_read_halfword(uint32_t addr)
čtení AP paměti (16 bit)
ADIv5AP ap
Access point.
Definition: adiv5apdp.h:192
void dp_init(void)
Základní inicializace.
uint32_t idcode
Core ID.
Definition: adiv5apdp.h:143
GdbServer * gdb
GdbServer potřebujeme pro přístup k některým funkcím.
Definition: adiv5apdp.h:138
void dp_write_ap(uint8_t addr, uint32_t value)
Čerti vědí
Vlastní obsluha gdb paketů. Nejpodstatnější část celého programu. Vše se děje v přerušení od USB...
Definition: gdbserver.h:28
Access Point.
Definition: adiv5apdp.h:154
void dp_write(uint8_t addr, uint32_t value)
Zápis do Data Pointu.
uint32_t dp_read(uint8_t addr)
Stejně tak čtení
uint32_t idr
???
Definition: adiv5apdp.h:177
uint32_t csw
???
Definition: adiv5apdp.h:180