11 #define CORTEXM_MAX_WATCHPOINTS 4
12 #define CORTEXM_MAX_BREAKPOINTS 6
23 unsigned hw_watchpoint_max;
26 unsigned hw_breakpoint_max;
56 virtual bool probe (
void);
90 int set_hw_wp (uint8_t type, uint32_t addr, uint8_t len);
92 int clear_hw_wp (uint8_t type, uint32_t addr, uint8_t len);
100 virtual int Handler (
int argc,
const char* argv[]);
bool vector_catch(int argc, const char *argv[])
převzato z black magic
int check_hw_wp(uint32_t *addr)
zjisti stav
int regs_write(const void *data)
zapiš zpět registry targetu
Zpracování příkazů Monitoru (gdb "monitor")
Části targetu společné pro všechny Cortex-M procesory. Dědí jednak Target a jeho metody (většinou pur...
Definition: cortexmx.h:45
void halt_resume(bool step)
pokračuj ve vykonávání programu (příp. po instrukcích)
#define CORTEXM_MAX_WATCHPOINTS
architecture says up to 15, no implementation has > 4
Definition: cortexmx.h:11
uint32_t val
DATA.
Definition: swdp.h:164
uint32_t demcr
Copy of DEMCR for vector-catch.
Definition: cortexmx.h:28
CortexMx(GdbServer *s, const char *name)
Konstruktor. I zde je potřeba zpětný přístup na GdbServer.
uint32_t syscall
Semihosting state.
Definition: cortexmx.h:30
Zapouzdření skupiny příkazů
int pc_write(const uint32_t val)
zapiš program counter do targetu
int hostio_request(void)
hostio_request
void detach(void)
Odpoj target od gdb.
uint32_t pc_read(void)
přečti program counter z targetu
bool attach(void)
Připoj target ke gdb.
virtual bool probe(void)
Test, zda je jádro připojeno - jen na začátku (monitor scan)
int halt_wait(void)
target stojí ? (funkce nečeká, jen se ptá)
int set_hw_wp(uint8_t type, uint32_t addr, uint8_t len)
nastav wathpoint
#define CORTEXM_MAX_BREAKPOINTS
Definition: cortexmx.h:12
void reset(void)
zrezetuj target
Zapouzdření skupiny příkazů I původní řešení mělo něco podobného. Zde je to oboustranně vázaný spojov...
Definition: commandset.h:17
int clear_hw_bp(uint32_t addr)
zruš breakpoint
int clear_hw_wp(uint8_t type, uint32_t addr, uint8_t len)
zruš wathpoint
int regs_read(void *data)
načti registry targetu
int set_hw_bp(uint32_t addr)
nastav breakpoint
virtual int Handler(int argc, const char *argv[])
handler pro příkaz
int fault_unwind(void)
Jakási obnova ???
Watchpoint unit status.
Definition: cortexmx.h:18
Tohle je celé z Black Magic, blíže nekomentuji.
Definition: cortexmx.h:14
void halt_request(void)
příkaz zastav target
Zpracování příkazů Monitoru (gdb "monitor") Původní C-čkový přístup byl jiný, možná jednodušší...
Definition: command.h:16
void hostio_reply(int32_t retcode, uint32_t errcode)
hostio_reply
const char * getName(void)
Vrátí privátní jméno jádra.
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