23
23
#include " utest/utest_serial.h"
24
24
#include " unity/unity.h"
25
25
#include " greentea-client/test_env.h"
26
+ #include " FlashIAP.h"
27
+ #include " unity.h"
26
28
#include < algorithm>
27
29
28
30
#include " mbed.h"
29
31
30
32
using namespace utest ::v1;
31
33
34
+
32
35
void flashiap_init_test ()
33
36
{
34
37
FlashIAP flash_device;
@@ -59,6 +62,9 @@ void flashiap_program_test()
59
62
// the one before the last sector in the system
60
63
uint32_t address = (flash_device.get_flash_start () + flash_device.get_flash_size ()) - (sector_size);
61
64
TEST_ASSERT_TRUE (address != 0UL );
65
+ utest_printf (" ROM ends at 0x%lx, test starts at 0x%lx\n " , FLASHIAP_ROM_END, address);
66
+ TEST_SKIP_UNLESS_MESSAGE (address >= FLASHIAP_ROM_END, " Test skipped. Test region overlaps code." );
67
+
62
68
ret = flash_device.erase (address, sector_size);
63
69
TEST_ASSERT_EQUAL_INT32 (0 , ret);
64
70
@@ -93,6 +99,7 @@ void flashiap_program_test()
93
99
TEST_ASSERT_EQUAL_INT32 (0 , ret);
94
100
}
95
101
102
+
96
103
void flashiap_cross_sector_program_test ()
97
104
{
98
105
FlashIAP flash_device;
@@ -111,6 +118,7 @@ void flashiap_cross_sector_program_test()
111
118
agg_size += sector_size;
112
119
address -= sector_size;
113
120
}
121
+ TEST_SKIP_UNLESS_MESSAGE (address >= FLASHIAP_ROM_END, " Test skipped. Test region overlaps code." );
114
122
ret = flash_device.erase (address, agg_size);
115
123
TEST_ASSERT_EQUAL_INT32 (0 , ret);
116
124
@@ -166,6 +174,7 @@ void flashiap_program_error_test()
166
174
TEST_ASSERT_TRUE (address != 0UL );
167
175
168
176
// unaligned address
177
+ TEST_SKIP_UNLESS_MESSAGE (address >= FLASHIAP_ROM_END, " Test skipped. Test region overlaps code." );
169
178
ret = flash_device.erase (address + 1 , sector_size);
170
179
TEST_ASSERT_EQUAL_INT32 (-1 , ret);
171
180
if (flash_device.get_page_size () > 1 ) {
@@ -185,7 +194,7 @@ void flashiap_timing_test()
185
194
uint32_t ret = flash_device.init ();
186
195
TEST_ASSERT_EQUAL_INT32 (0 , ret);
187
196
mbed::Timer timer;
188
- int num_write_sizes;
197
+ unsigned int num_write_sizes;
189
198
unsigned int curr_time, byte_usec_ratio;
190
199
unsigned int avg_erase_time = 0 ;
191
200
unsigned int max_erase_time = 0 , min_erase_time = (unsigned int ) -1 ;
@@ -222,7 +231,7 @@ void flashiap_timing_test()
222
231
uint32_t address = base_address;
223
232
unsigned int avg_write_time = 0 ;
224
233
unsigned int max_write_time = 0 , min_write_time = (unsigned int ) -1 ;
225
- int num_writes;
234
+ unsigned int num_writes;
226
235
for (num_writes = 0 ; num_writes < max_writes; num_writes++) {
227
236
if ((address + write_size) > end_address) {
228
237
break ;
0 commit comments