kopia lustrzana https://github.com/stlink-org/stlink
Implement _stlink_usb_write_mem32|8
Signed-off-by: Karl Palsson <karlp@tweak.net.au>pull/29/head
rodzic
173831d592
commit
37f3d97e05
|
@ -171,13 +171,37 @@ void _stlink_usb_version(stlink_t *sl) {
|
|||
}
|
||||
|
||||
void _stlink_usb_write_mem32(stlink_t *sl, uint32_t addr, uint16_t len) {
|
||||
DD(sl, "oops! no write32 support yet, wanted to write %d bytes to %#x\n",
|
||||
len, addr);
|
||||
struct stlink_libusb * const slu = sl->backend_data;
|
||||
unsigned char* const buf = sl->q_buf;
|
||||
unsigned char *cmd_buf = sl->c_buf;
|
||||
|
||||
memset(cmd_buf, 0, STLINK_CMD_SIZE);
|
||||
cmd_buf[0] = STLINK_DEBUG_COMMAND;
|
||||
cmd_buf[1] = STLINK_DEBUG_WRITEMEM_32BIT;
|
||||
write_uint32(cmd_buf + 2, addr);
|
||||
write_uint16(cmd_buf + 6, len);
|
||||
send_only(slu, cmd_buf, STLINK_CMD_SIZE);
|
||||
|
||||
assert((len & 3) == 0);
|
||||
stlink_print_data(sl);
|
||||
send_only(slu, buf, len);
|
||||
|
||||
}
|
||||
|
||||
void _stlink_usb_write_mem8(stlink_t *sl, uint32_t addr, uint16_t len) {
|
||||
DD(sl, "oops! no write8 support yet, wanted to write %d bytes to %#x\n",
|
||||
len, addr);
|
||||
struct stlink_libusb * const slu = sl->backend_data;
|
||||
unsigned char* const buf = sl->q_buf;
|
||||
unsigned char *cmd_buf = sl->c_buf;
|
||||
|
||||
memset(cmd_buf, 0, STLINK_CMD_SIZE);
|
||||
cmd_buf[0] = STLINK_DEBUG_COMMAND;
|
||||
cmd_buf[1] = STLINK_DEBUG_WRITEMEM_8BIT;
|
||||
write_uint32(cmd_buf + 2, addr);
|
||||
write_uint16(cmd_buf + 6, len);
|
||||
send_only(slu, cmd_buf, STLINK_CMD_SIZE);
|
||||
|
||||
stlink_print_data(sl);
|
||||
send_only(slu, buf, len);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -40,11 +40,26 @@ int main(int ac, char** av) {
|
|||
stlink_read_mem32(sl, CM3_REG_FP_CTRL, 4);
|
||||
|
||||
// no idea what reg this is.. */
|
||||
/* stlink_read_mem32(sl, 0xe000ed90, 4);
|
||||
// stlink_read_mem32(sl, 0xe000ed90, 4);
|
||||
// no idea what register this is...
|
||||
/* stlink_read_mem32(sl, 0xe000edf0, 4);
|
||||
// stlink_read_mem32(sl, 0xe000edf0, 4);
|
||||
// offset 0xC into TIM11 register? TIMx_DIER?
|
||||
/* stlink_read_mem32(sl, 0x4001100c, 4); */
|
||||
// stlink_read_mem32(sl, 0x4001100c, 4); */
|
||||
|
||||
write_uint32(sl->q_buf,0x01234567);
|
||||
stlink_write_mem32(sl,0x200000a8,4);
|
||||
write_uint32(sl->q_buf,0x89abcdef);
|
||||
stlink_write_mem32(sl,0x200000ac, 4);
|
||||
stlink_read_mem32(sl, 0x200000a8, 4);
|
||||
stlink_read_mem32(sl, 0x200000ac, 4);
|
||||
|
||||
write_uint32(sl->q_buf,0x01234567);
|
||||
stlink_write_mem8(sl,0x200001a8,3);
|
||||
write_uint32(sl->q_buf,0x89abcdef);
|
||||
stlink_write_mem8(sl, 0x200001ac, 3);
|
||||
stlink_read_mem32(sl, 0x200001a8, 4);
|
||||
stlink_read_mem32(sl, 0x200001ac, 4);
|
||||
|
||||
|
||||
printf("-- status\n");
|
||||
stlink_status(sl);
|
||||
|
|
Ładowanie…
Reference in New Issue