1 #ifndef STLINK_BACKEND_H_
2 #define STLINK_BACKEND_H_
4 typedef struct _stlink_backend {
5 void (*close) (stlink_t * sl);
6 int (*exit_debug_mode) (stlink_t * sl);
7 int (*enter_swd_mode) (stlink_t * sl);
8 int (*enter_jtag_mode) (stlink_t * stl);
9 int (*exit_dfu_mode) (stlink_t * stl);
10 int (*core_id) (stlink_t * stl);
11 int (*reset) (stlink_t * stl);
12 int (*jtag_reset) (stlink_t * stl, int value);
13 int (*run) (stlink_t * stl);
14 int (*status) (stlink_t * stl);
15 int (*version) (stlink_t *sl);
16 int (*read_debug32) (stlink_t *sl, uint32_t addr, uint32_t *data);
17 int (*read_mem32) (stlink_t *sl, uint32_t addr, uint16_t len);
18 int (*write_debug32) (stlink_t *sl, uint32_t addr, uint32_t data);
19 int (*write_mem32) (stlink_t *sl, uint32_t addr, uint16_t len);
20 int (*write_mem8) (stlink_t *sl, uint32_t addr, uint16_t len);
21 int (*read_all_regs) (stlink_t *sl, reg * regp);
22 int (*read_reg) (stlink_t *sl, int r_idx, reg * regp);
23 int (*read_all_unsupported_regs) (stlink_t *sl, reg *regp);
24 int (*read_unsupported_reg) (stlink_t *sl, int r_idx, reg *regp);
25 int (*write_unsupported_reg) (stlink_t *sl, uint32_t value, int idx, reg *regp);
26 int (*write_reg) (stlink_t *sl, uint32_t reg, int idx);
27 int (*step) (stlink_t * stl);
28 int (*current_mode) (stlink_t * stl);
29 int (*force_debug) (stlink_t *sl);
30 int32_t (*target_voltage) (stlink_t *sl);
33 #endif /* STLINK_BACKEND_H_ */