@@ -249,11 +249,11 @@ void flashiap_timing_test()
249249 std::chrono::microseconds curr_time{};
250250 std::chrono::microseconds avg_erase_time{};
251251 unsigned int num_write_sizes;
252- unsigned int byte_usec_ratio ;
252+ float byte_sec_ratio ;
253253 std::chrono::microseconds max_erase_time (0 ), min_erase_time (-1 );
254254 const unsigned int max_writes = 128 ;
255255 const unsigned int max_write_sizes = 6 ;
256- const unsigned int max_byte_usec_ratio = 200 ;
256+ const unsigned int max_byte_sec_ratio = 200000000 ;
257257
258258 uint32_t page_size = flash_device.get_page_size ();
259259 uint32_t write_size = page_size;
@@ -294,28 +294,34 @@ void flashiap_timing_test()
294294 }
295295 timer.reset ();
296296 ret = flash_device.program (buf, address, write_size);
297+
298+ if (ret)
299+ {
300+ printf (" Failed programming %" PRIu32 " bytes at address 0x%" PRIx32 " \n !" , write_size, address);
301+ TEST_FAIL ();
302+ }
303+
297304 curr_time = timer.elapsed_time ();
298305 avg_write_time += curr_time;
299- TEST_ASSERT_EQUAL_INT32 (0 , ret);
300306 max_write_time = us_max (max_write_time, curr_time);
301307 min_write_time = us_min (min_write_time, curr_time);
302308 address += write_size;
303309 }
304310 delete[] buf;
305311 avg_write_time /= num_writes;
306- byte_usec_ratio = write_size / avg_write_time.count ();
307- utest_printf (" Write size %6u bytes: avg %10" PRIi64 " , min %10" PRIi64 " , max %10" PRIi64 " (usec), rate %10u bytes/usec \n " ,
308- write_size, avg_write_time.count (), min_write_time.count (), max_write_time.count (), byte_usec_ratio );
309- TEST_ASSERT (byte_usec_ratio < max_byte_usec_ratio );
312+ byte_sec_ratio = write_size / std::chrono::duration_cast<std::chrono::duration< float >>( avg_write_time) .count ();
313+ utest_printf (" Write size %6u bytes: avg %10" PRIi64 " , min %10" PRIi64 " , max %10" PRIi64 " (usec), rate %.01f bytes/sec \n " ,
314+ write_size, avg_write_time.count (), min_write_time.count (), max_write_time.count (), byte_sec_ratio );
315+ TEST_ASSERT (byte_sec_ratio < max_byte_sec_ratio );
310316 write_size *= 4 ;
311317 }
312318
313319 if (num_write_sizes) {
314320 avg_erase_time /= num_write_sizes;
315- byte_usec_ratio = sector_size / avg_erase_time.count ();
316- utest_printf (" \n Erase size %6u bytes: avg %10" PRIi64 " , min %10" PRIi64 " , max %10" PRIi64" (usec), rate %10u bytes/usec \n\n " ,
317- sector_size, avg_erase_time.count (), min_erase_time.count (), max_erase_time.count (), byte_usec_ratio );
318- TEST_ASSERT (byte_usec_ratio < max_byte_usec_ratio );
321+ byte_sec_ratio = sector_size / std::chrono::duration_cast<std::chrono::duration< float >>( avg_erase_time) .count ();
322+ utest_printf (" \n Erase size %6u bytes: avg %10" PRIi64 " , min %10" PRIi64 " , max %10" PRIi64" (usec), rate %.01f bytes/sec \n\n " ,
323+ sector_size, avg_erase_time.count (), min_erase_time.count (), max_erase_time.count (), byte_sec_ratio );
324+ TEST_ASSERT (byte_sec_ratio < max_byte_sec_ratio );
319325 }
320326
321327 ret = flash_device.deinit ();
0 commit comments