@@ -55,9 +55,6 @@ void flashiap_program_test()
5555 TEST_ASSERT_TRUE (sector_size % page_size == 0 );
5656 uint32_t prog_size = std::max (page_size, (uint32_t )8 );
5757 uint8_t *data = new uint8_t [prog_size + 2 ];
58- for (uint32_t i = 0 ; i < prog_size + 2 ; i++) {
59- data[i] = i;
60- }
6158
6259 // the one before the last sector in the system
6360 uint32_t address = (flash_device.get_flash_start () + flash_device.get_flash_size ()) - (sector_size);
@@ -68,14 +65,27 @@ void flashiap_program_test()
6865 ret = flash_device.erase (address, sector_size);
6966 TEST_ASSERT_EQUAL_INT32 (0 , ret);
7067
68+ uint8_t erase_val = flash_device.get_erase_value ();
69+ memset (data, erase_val, prog_size);
70+
71+ uint8_t *data_flashed = new uint8_t [prog_size];
72+ for (uint32_t i = 0 ; i < sector_size / prog_size; i++) {
73+ uint32_t page_addr = address + i * prog_size;
74+ ret = flash_device.read (data_flashed, page_addr, prog_size);
75+ TEST_ASSERT_EQUAL_INT32 (0 , ret);
76+ TEST_ASSERT_EQUAL_UINT8_ARRAY (data, data_flashed, prog_size);
77+ }
78+
79+ for (uint32_t i = 0 ; i < prog_size + 2 ; i++) {
80+ data[i] = i;
81+ }
7182
7283 for (uint32_t i = 0 ; i < sector_size / prog_size; i++) {
7384 uint32_t prog_addr = address + i * prog_size;
7485 ret = flash_device.program (data, prog_addr, prog_size);
7586 TEST_ASSERT_EQUAL_INT32 (0 , ret);
7687 }
7788
78- uint8_t *data_flashed = new uint8_t [prog_size];
7989 for (uint32_t i = 0 ; i < sector_size / prog_size; i++) {
8090 uint32_t page_addr = address + i * prog_size;
8191 ret = flash_device.read (data_flashed, page_addr, prog_size);
0 commit comments