3030#include < string.h>
3131#include < inttypes.h>
3232
33+ #define ERASE_CASE_TIMEOUT (1000 )
34+
3335using namespace utest ::v1;
3436
37+ #if defined(TARGET_K64F)
3538extern ARM_DRIVER_STORAGE ARM_Driver_Storage_MTD_K64F;
3639ARM_DRIVER_STORAGE *drv = &ARM_Driver_Storage_MTD_K64F;
40+ #elif defined(TARGET_STM)
41+ extern ARM_DRIVER_STORAGE ARM_Driver_Storage_MTD_STM32;
42+ ARM_DRIVER_STORAGE *drv = &ARM_Driver_Storage_MTD_STM32;
43+ #else
44+ extern ARM_DRIVER_STORAGE ARM_Driver_Storage_ (0 );
45+ ARM_DRIVER_STORAGE *drv = &ARM_Driver_Storage_ (0 );
46+ #endif
3747
3848/* temporary buffer to hold data for testing. */
3949static const unsigned BUFFER_SIZE = 16384 ;
@@ -282,7 +292,7 @@ void programDataCompleteCallback(int32_t status, ARM_STORAGE_OPERATION operation
282292 TEST_ASSERT (status >= 0 );
283293 static unsigned programIteration = 0 ;
284294
285- static const uint32_t BYTE_PATTERN = 0xAA551122 ;
295+ static const uint8_t BYTE_PATTERN = 0xAA ;
286296 ARM_STORAGE_BLOCK firstBlock;
287297 drv->GetNextBlock (NULL , &firstBlock); /* get first block */
288298 TEST_ASSERT (ARM_STORAGE_VALID_BLOCK (&firstBlock));
@@ -301,9 +311,8 @@ void programDataCompleteCallback(int32_t status, ARM_STORAGE_OPERATION operation
301311
302312 size_t sizeofData = info.program_unit ;
303313 TEST_ASSERT (BUFFER_SIZE >= sizeofData);
304- TEST_ASSERT ((sizeofData % sizeof (uint32_t )) == 0 );
305- for (size_t index = 0 ; index < sizeofData / sizeof (uint32_t ); index++) {
306- ((uint32_t *)buffer)[index] = BYTE_PATTERN;
314+ for (size_t index = 0 ; index < sizeofData; index++) {
315+ ((uint8_t *)buffer)[index] = BYTE_PATTERN;
307316 }
308317
309318 status = drv->ProgramData (addr, buffer, sizeofData);
@@ -371,17 +380,16 @@ control_t test_programDataUsingProgramUnit(const size_t call_count)
371380 TEST_ASSERT (rc >= 0 );
372381 if (rc == ARM_DRIVER_OK) {
373382 TEST_ASSERT_EQUAL (1 , capabilities.asynchronous_ops );
374- return (call_count < REPEAT_INSTANCES) ? CaseTimeout (200 ) + CaseRepeatAll: CaseTimeout (200 );
383+ return (call_count < REPEAT_INSTANCES) ? CaseTimeout (ERASE_CASE_TIMEOUT ) + CaseRepeatAll: CaseTimeout (ERASE_CASE_TIMEOUT );
375384 } else {
376385 TEST_ASSERT_EQUAL (firstBlock.attributes .erase_unit , rc);
377386 verifyBytePattern (addr, firstBlock.attributes .erase_unit , info.erased_value ? (uint8_t )0xFF : (uint8_t )0 );
378387
379- static const uint32_t BYTE_PATTERN = 0xAA551122 ;
388+ static const uint8_t BYTE_PATTERN = 0xAA ;
380389 size_t sizeofData = info.program_unit ;
381390 TEST_ASSERT (BUFFER_SIZE >= sizeofData);
382- TEST_ASSERT ((sizeofData % sizeof (uint32_t )) == 0 );
383- for (size_t index = 0 ; index < sizeofData / sizeof (uint32_t ); index++) {
384- ((uint32_t *)buffer)[index] = BYTE_PATTERN;
391+ for (size_t index = 0 ; index < sizeofData; index++) {
392+ ((uint8_t *)buffer)[index] = BYTE_PATTERN;
385393 }
386394
387395 /* program the sector at addr */
@@ -493,7 +501,7 @@ control_t test_programDataUsingOptimalProgramUnit(const size_t call_count)
493501 TEST_ASSERT (rc >= 0 );
494502 if (rc == ARM_DRIVER_OK) {
495503 TEST_ASSERT_EQUAL (1 , capabilities.asynchronous_ops );
496- return (call_count < REPEAT_INSTANCES) ? CaseTimeout (200 ) + CaseRepeatAll: CaseTimeout (200 );
504+ return (call_count < REPEAT_INSTANCES) ? CaseTimeout (ERASE_CASE_TIMEOUT ) + CaseRepeatAll: CaseTimeout (ERASE_CASE_TIMEOUT );
497505 } else {
498506 TEST_ASSERT_EQUAL (firstBlock.attributes .erase_unit , rc);
499507 verifyBytePattern (addr, firstBlock.attributes .erase_unit , info.erased_value ? (uint8_t )0xFF : (uint8_t )0 );
@@ -627,7 +635,7 @@ control_t test_erase(const size_t call_count)
627635 int32_t rc = drv->Erase (addr, ERASE_UNITS_PER_ITERATION * firstBlock.attributes .erase_unit );
628636 if (rc == ARM_DRIVER_OK) {
629637 TEST_ASSERT_EQUAL (1 , capabilities.asynchronous_ops );
630- return (call_count < REPEAT_INSTANCES) ? CaseTimeout (200 ) + CaseRepeatAll: CaseTimeout (200 );
638+ return (call_count < REPEAT_INSTANCES) ? CaseTimeout (ERASE_CASE_TIMEOUT ) + CaseRepeatAll: CaseTimeout (ERASE_CASE_TIMEOUT );
631639 } else {
632640 TEST_ASSERT_EQUAL (ERASE_UNITS_PER_ITERATION * firstBlock.attributes .erase_unit , rc);
633641
@@ -911,7 +919,7 @@ control_t test_programDataWithMultipleProgramUnits(const size_t call_count)
911919 TEST_ASSERT (rc >= 0 );
912920 if (rc == ARM_DRIVER_OK) {
913921 TEST_ASSERT_EQUAL (1 , capabilities.asynchronous_ops );
914- return CaseTimeout (500 );
922+ return CaseTimeout (1000 );
915923 } else {
916924 TEST_ASSERT_EQUAL ((N_UNITS * info.program_unit ), rc);
917925
0 commit comments