X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=lib%2Fccdbg.h;h=4a2e3b9f00c9222118f93386024a206d06ab5ffd;hp=037d8ff574c11386231f7aa1d93b37e018248493;hb=17d2432a8b9c15963cd3b821f025ad33972ef477;hpb=60940b4be23962db79b8e914ec943d0636dd68ad diff --git a/lib/ccdbg.h b/lib/ccdbg.h index 037d8ff5..4a2e3b9f 100644 --- a/lib/ccdbg.h +++ b/lib/ccdbg.h @@ -31,11 +31,8 @@ #include #include #include "ccdbg-debug.h" - -#define CC_CLOCK 0x1 -#define CC_DATA 0x2 -#define CC_RESET_N 0x4 -#define CC_CLOCK_US (0) +#include "cc-bitbang.h" +#include "cc-usb.h" /* 8051 instructions */ @@ -103,15 +100,10 @@ /* Bit-addressable status word */ #define PSW(bit) (0xD0 | (bit)) -#define CP_USB_ASYNC - struct ccdbg { -#ifdef CP_USB_ASYNC - struct cp_usb_async *cp_async; -#else - struct cp_usb *cp; -#endif - struct hex_image *rom; + struct cc_bitbang *bb; + struct cc_usb *usb; + struct hex_image *rom; }; /* Intel hex file format data @@ -219,6 +211,13 @@ ccdbg_resume(struct ccdbg *dbg); uint8_t ccdbg_debug_instr(struct ccdbg *dbg, uint8_t *instr, int nbytes); +void +ccdbg_debug_instr_discard(struct ccdbg *dbg, uint8_t *instr, int nbytes); + +void +ccdbg_debug_instr_queue(struct ccdbg *dbg, uint8_t *instr, int nbytes, + uint8_t *reply); + uint8_t ccdbg_step_instr(struct ccdbg *dbg); @@ -230,10 +229,10 @@ ccdbg_get_chip_id(struct ccdbg *dbg); uint8_t ccdbg_execute(struct ccdbg *dbg, uint8_t *inst); - + uint8_t ccdbg_set_pc(struct ccdbg *dbg, uint16_t pc); - + uint8_t ccdbg_execute_hex_image(struct ccdbg *dbg, struct hex_image *image); @@ -258,77 +257,33 @@ int ccdbg_hex_image_equal(struct hex_image *a, struct hex_image *b); /* ccdbg-io.c */ -void -ccdbg_set_clock(uint32_t us); - -void -ccdbg_half_clock(struct ccdbg *dbg); - -int -ccdbg_write(struct ccdbg *dbg, uint8_t mask, uint8_t value); - -void -ccdbg_read(struct ccdbg *dbg, uint8_t *valuep); - struct ccdbg * ccdbg_open(void); void ccdbg_close(struct ccdbg *dbg); -void -ccdbg_clock_1_0(struct ccdbg *dbg); - -void -ccdbg_clock_0_1(struct ccdbg *dbg); - -void -ccdbg_write_bit(struct ccdbg *dbg, uint8_t bit); - -void -ccdbg_write_byte(struct ccdbg *dbg, uint8_t byte); - -uint8_t -ccdbg_read_bit(struct ccdbg *dbg); - -uint8_t -ccdbg_read_byte(struct ccdbg *dbg); - void ccdbg_cmd_write(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len); uint8_t ccdbg_cmd_write_read8(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len); -uint16_t -ccdbg_cmd_write_read16(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len); - void -ccdbg_send(struct ccdbg *dbg, uint8_t mask, uint8_t set); +ccdbg_cmd_write_queue8(struct ccdbg *dbg, uint8_t cmd, + uint8_t *data, int len, uint8_t *reply); -void -ccdbg_send_bit(struct ccdbg *dbg, uint8_t bit); - -void -ccdbg_send_byte(struct ccdbg *dbg, uint8_t byte); +uint16_t +ccdbg_cmd_write_read16(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len); void ccdbg_send_bytes(struct ccdbg *dbg, uint8_t *bytes, int nbytes); -void -ccdbg_recv_bit(struct ccdbg *dbg, int first, uint8_t *bit); - -void -ccdbg_recv_byte(struct ccdbg *dbg, int first, uint8_t *byte); - void ccdbg_recv_bytes(struct ccdbg *dbg, uint8_t *bytes, int nbytes); void -ccdbg_sync_io(struct ccdbg *dbg); - -void -ccdbg_print(char *format, uint8_t mask, uint8_t set); +ccdbg_sync(struct ccdbg *dbg); /* ccdbg-manual.c */