mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #11752 from mnaberez/erase-value
FlashIAP: Get erase value from HAL instead of hardcoding itpull/11756/head
commit
1c5fe1c9f5
|
@ -143,6 +143,7 @@ void flashiap_cross_sector_program_test()
|
|||
TEST_ASSERT_EQUAL_INT32(0, ret);
|
||||
|
||||
uint32_t page_size = flash_device.get_page_size();
|
||||
uint8_t erase_value = flash_device.get_erase_value();
|
||||
|
||||
// Erase last two sectors
|
||||
uint32_t address = flash_device.get_flash_start() + flash_device.get_flash_size();
|
||||
|
@ -170,7 +171,7 @@ void flashiap_cross_sector_program_test()
|
|||
data[i] = rand() % 256;
|
||||
}
|
||||
for (uint32_t i = prog_size; i < aligned_prog_size; i++) {
|
||||
data[i] = 0xFF;
|
||||
data[i] = erase_value;
|
||||
}
|
||||
|
||||
ret = flash_device.program(data, address, prog_size);
|
||||
|
|
|
@ -99,6 +99,7 @@ int FlashIAP::program(const void *buffer, uint32_t addr, uint32_t size)
|
|||
uint32_t page_size = get_page_size();
|
||||
uint32_t flash_size = flash_get_size(&_flash);
|
||||
uint32_t flash_start_addr = flash_get_start_address(&_flash);
|
||||
uint8_t flash_erase_value = flash_get_erase_value(&_flash);
|
||||
uint32_t chunk, prog_size;
|
||||
const uint8_t *buf = (uint8_t *) buffer;
|
||||
const uint8_t *prog_buf;
|
||||
|
@ -123,7 +124,7 @@ int FlashIAP::program(const void *buffer, uint32_t addr, uint32_t size)
|
|||
chunk = std::min(chunk, page_size);
|
||||
memcpy(_page_buf, buf, chunk);
|
||||
if (chunk < page_size) {
|
||||
memset(_page_buf + chunk, 0xFF, page_size - chunk);
|
||||
memset(_page_buf + chunk, flash_erase_value, page_size - chunk);
|
||||
}
|
||||
prog_buf = _page_buf;
|
||||
prog_size = page_size;
|
||||
|
|
Loading…
Reference in New Issue