mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-28 08:37:22 +00:00
btstack_tlv_flash_bank: fix unaligned read and migration
This commit is contained in:
parent
1faf2c16e4
commit
d2d1d05367
@ -131,8 +131,7 @@ static void btstack_tlv_flash_bank_read(btstack_tlv_flash_bank_t * self, int ban
|
|||||||
if (size == 0) return;
|
if (size == 0) return;
|
||||||
uint8_t alignment_block[BTSTACK_FLASH_ALIGNMENT_MAX];
|
uint8_t alignment_block[BTSTACK_FLASH_ALIGNMENT_MAX];
|
||||||
self->hal_flash_bank_impl->read(self->hal_flash_bank_context, bank, offset, alignment_block, alignment);
|
self->hal_flash_bank_impl->read(self->hal_flash_bank_context, bank, offset, alignment_block, alignment);
|
||||||
uint32_t bytes_to_copy = btstack_min(alignment - lower_bits, size);
|
memcpy(buffer, alignment_block, size);
|
||||||
memcpy(buffer, alignment_block, bytes_to_copy);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void btstack_tlv_flash_bank_write(btstack_tlv_flash_bank_t * self, int bank, uint32_t offset, const uint8_t * buffer, uint32_t size){
|
static void btstack_tlv_flash_bank_write(btstack_tlv_flash_bank_t * self, int bank, uint32_t offset, const uint8_t * buffer, uint32_t size){
|
||||||
@ -277,7 +276,7 @@ static void btstack_tlv_flash_bank_migrate(btstack_tlv_flash_bank_t * self){
|
|||||||
log_info("migrate bank %u -> bank %u", self->current_bank, next_bank);
|
log_info("migrate bank %u -> bank %u", self->current_bank, next_bank);
|
||||||
// erase bank (if needed)
|
// erase bank (if needed)
|
||||||
btstack_tlv_flash_bank_erase_bank(self, next_bank);
|
btstack_tlv_flash_bank_erase_bank(self, next_bank);
|
||||||
int next_write_pos = BTSTACK_TLV_BANK_HEADER_LEN;
|
uint32_t next_write_pos = btstack_tlv_flash_bank_align_size (self, BTSTACK_TLV_BANK_HEADER_LEN);;
|
||||||
|
|
||||||
tlv_iterator_t it;
|
tlv_iterator_t it;
|
||||||
btstack_tlv_flash_bank_iterator_init(self, &it, self->current_bank);
|
btstack_tlv_flash_bank_iterator_init(self, &it, self->current_bank);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user