if (bytes_remaining)
{
- uint32_t value = 0;
- for (int i = 0; i < 4; i++)
- {
- if (bytes_remaining)
- {
- value += (buffer[i] << (8 * i));
- bytes_remaining--;
- }
- }
+ uint8_t last_word[4] = {0xff, 0xff, 0xff, 0xff};
- retval = target_write_u32(target, address, value);
+ /* copy the last remaining bytes into the write buffer */
+ memcpy(last_word, buffer+bytes_written, bytes_remaining);
+
+ retval = target_write_buffer(target, address, 4, last_word);
if (retval != ERROR_OK)
return retval;
LOG_DEBUG("device id = 0x%08" PRIx32 "", device_id);
- if ((device_id & 0x7ff) != 0x416)
- {
+ if ((device_id & 0xfff) != 0x416) {
LOG_WARNING("Cannot identify target as a STM32L family.");
return ERROR_FAIL;
}
if (retval != ERROR_OK)
return retval;
- if ((device_id & 0x7ff) == 0x416)
- {
+ if ((device_id & 0xfff) == 0x416) {
printed = snprintf(buf, buf_size, "stm32lx - Rev: ");
buf += printed;
buf_size -= printed;
.name = "stm32lx",
.mode = COMMAND_ANY,
.help = "stm32lx flash command group",
+ .usage = "",
.chain = stm32lx_exec_command_handlers,
},
COMMAND_REGISTRATION_DONE