mirror of https://github.com/rusefi/bldc.git
Added COMM_BM_READ_MEM command
This commit is contained in:
parent
eb6f5945ce
commit
db6ba047d9
|
@ -1,3 +1,6 @@
|
||||||
|
=== FW 3.62 ===
|
||||||
|
* Added COMM_BM_MEM_READ.
|
||||||
|
|
||||||
=== FW 3.61 ===
|
=== FW 3.61 ===
|
||||||
* Added PPM_CTRL_TYPE_CURRENT_SMART_REV mode.
|
* Added PPM_CTRL_TYPE_CURRENT_SMART_REV mode.
|
||||||
|
|
||||||
|
|
|
@ -459,6 +459,34 @@ int bm_write_flash(uint32_t addr, const void *data, uint32_t len) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read target memory
|
||||||
|
*
|
||||||
|
* @param addr
|
||||||
|
* Address to read from
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
* Store the data here
|
||||||
|
*
|
||||||
|
* @param len
|
||||||
|
* Length of the data
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* -2: Read failed
|
||||||
|
* -1: Not connected
|
||||||
|
* 1: Success
|
||||||
|
*/
|
||||||
|
int bm_mem_read(uint32_t addr, void *data, uint32_t len) {
|
||||||
|
int ret = -1;
|
||||||
|
|
||||||
|
if (cur_target) {
|
||||||
|
target_print_en = false;
|
||||||
|
ret = target_mem_read(cur_target, data, addr, len) ? 1 : -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reboot target.
|
* Reboot target.
|
||||||
*
|
*
|
||||||
|
|
|
@ -29,6 +29,7 @@ void bm_set_enabled(bool enabled);
|
||||||
int bm_connect(void);
|
int bm_connect(void);
|
||||||
int bm_erase_flash_all(void);
|
int bm_erase_flash_all(void);
|
||||||
int bm_write_flash(uint32_t addr, const void *data, uint32_t len);
|
int bm_write_flash(uint32_t addr, const void *data, uint32_t len);
|
||||||
|
int bm_mem_read(uint32_t addr, void *data, uint32_t len);
|
||||||
int bm_reboot(void);
|
int bm_reboot(void);
|
||||||
void bm_disconnect(void);
|
void bm_disconnect(void);
|
||||||
void bm_change_swd_pins(stm32_gpio_t *swdio_port, int swdio_pin,
|
void bm_change_swd_pins(stm32_gpio_t *swdio_port, int swdio_pin,
|
||||||
|
|
20
commands.c
20
commands.c
|
@ -938,6 +938,7 @@ void commands_process_packet(unsigned char *data, unsigned int len,
|
||||||
case COMM_BM_DISCONNECT:
|
case COMM_BM_DISCONNECT:
|
||||||
case COMM_BM_MAP_PINS_DEFAULT:
|
case COMM_BM_MAP_PINS_DEFAULT:
|
||||||
case COMM_BM_MAP_PINS_NRF5X:
|
case COMM_BM_MAP_PINS_NRF5X:
|
||||||
|
case COMM_BM_MEM_READ:
|
||||||
if (!is_blocking) {
|
if (!is_blocking) {
|
||||||
memcpy(blocking_thread_cmd_buffer, data - 1, len + 1);
|
memcpy(blocking_thread_cmd_buffer, data - 1, len + 1);
|
||||||
blocking_thread_cmd_len = len;
|
blocking_thread_cmd_len = len;
|
||||||
|
@ -1454,6 +1455,25 @@ static THD_FUNCTION(blocking_thread, arg) {
|
||||||
} break;
|
} break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
case COMM_BM_MEM_READ: {
|
||||||
|
int32_t ind = 0;
|
||||||
|
uint32_t addr = buffer_get_uint32(data, &ind);
|
||||||
|
uint16_t read_len = buffer_get_uint16(data, &ind);
|
||||||
|
|
||||||
|
if (read_len > sizeof(send_buffer) - 3) {
|
||||||
|
read_len = sizeof(send_buffer) - 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
int res = bm_mem_read(addr, send_buffer + 3, read_len);
|
||||||
|
|
||||||
|
ind = 0;
|
||||||
|
send_buffer[ind++] = packet_id;
|
||||||
|
buffer_append_int16(send_buffer, res, &ind);
|
||||||
|
if (send_func_blocking) {
|
||||||
|
send_func_blocking(send_buffer, ind);
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -660,6 +660,7 @@ typedef enum {
|
||||||
COMM_PLOT_DATA,
|
COMM_PLOT_DATA,
|
||||||
COMM_PLOT_ADD_GRAPH,
|
COMM_PLOT_ADD_GRAPH,
|
||||||
COMM_PLOT_SET_GRAPH,
|
COMM_PLOT_SET_GRAPH,
|
||||||
|
COMM_BM_MEM_READ,
|
||||||
} COMM_PACKET_ID;
|
} COMM_PACKET_ID;
|
||||||
|
|
||||||
// CAN commands
|
// CAN commands
|
||||||
|
|
Loading…
Reference in New Issue