KizarmProbe.
 Vše Třídy Soubory Funkce Proměnné Výčty Hodnoty výčtu Definice maker Skupiny Stránky
target.h
1 #ifndef TARGET_H
2 #define TARGET_H
3 #include <stdint.h>
4 #include "adiv5apdp.h"
5 #include "gdbserver.h"
6 
7 class Target {
8 
9  public:
10  Target (GdbServer* s);
11  virtual ~Target () {};
12  /* Notify controlling debugger if target is lost */
13  // target_destroy_callback destroy_callback;
14  /* Attach/Detach funcitons */
15  virtual void remove (void) = 0;
16  virtual bool attach (void) = 0;
17  virtual void detach (void) = 0;
18  virtual const char* getName (void) = 0;
19 
20  /* Register access functions */
21  int get_regs_size (void) {return regs_size;};
22  virtual int regs_read (void *data) = 0;
23  virtual int regs_write (const void *data) = 0;
24 
25  virtual uint32_t pc_read (void) = 0;
26  virtual int pc_write (const uint32_t val) = 0;
27 
28  /* Halt/resume functions */
29  virtual void reset (void) = 0;
30  virtual void halt_request (void) = 0;
31  virtual int halt_wait (void) = 0;
32  virtual void halt_resume (bool step) = 0;
33 
34  /* Break-/watchpoint functions */
35  virtual int set_hw_bp (uint32_t addr) = 0;
36  virtual int clear_hw_bp (uint32_t addr) = 0;
37 
38  virtual int set_hw_wp (uint8_t type, uint32_t addr, uint8_t len) = 0;
39  virtual int clear_hw_wp (uint8_t type, uint32_t addr, uint8_t len) = 0;
40 
41  virtual int check_hw_wp (uint32_t *addr) = 0;
42 
43 
44  /* Host I/O support */
45  virtual int hostio_request (void) = 0;
46  virtual void hostio_reply (int32_t retcode, uint32_t errcode) = 0;
47 
48  /* Memory access functions */
49  int mem_read_words (uint32_t *dest, uint32_t src, int len);
50  int mem_write_words (uint32_t dest, const uint32_t *src, int len);
51  int mem_read_bytes (uint8_t *dest, uint32_t src, int len);
52  int mem_write_bytes (uint32_t dest, const uint8_t *src, int len);
53 
54  /* Flash memory access functions */
55  virtual int flash_erase (uint32_t addr, int len);
56  virtual int flash_write (uint32_t dest, const uint8_t *src, int len);
57 
58  int check_error (void);
59  uint32_t generic_crc32 (uint32_t base, int len);
60 
61  virtual bool probe (void);
62  GdbServer * getServer (void);
63  private:
64  GdbServer * gdb;
65  public: // data jsou veřejná kvůli jednoduchosti.
66  ADIv5APDP apdp;
67 
68  bool attached;
69  const char * xml_mem_map;
70  /* Register access */
71  int regs_size;
72  const char * tdesc;
73  /* target-defined options */
74  unsigned target_options;
75  uint32_t idcode;
76  //Target * next; // Multitarget je pro SWD celkem zbytečný.
77 };
78 
79 #endif // TARGET_H
uint32_t val
DATA.
Definition: swdp.h:164
Definition: target.h:7
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
Vlastní obsluha gdb paketů.
Třídy pro přístup na SWD AP a DP.
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