*/
/**
+ * This application is used to test the threaded version of the API for performing
+ * block storage.
+ *
+ * This application first checks the size of the block storage volume, and
+ * erases it. Then, it randomly writes records, followed by a verification
+ * with read.
+ *
+ * Successful running of this application results in LED0 being ON
+ * throughout the duration of the erase, write, and read sequence. Finally,
+ * if all tests pass, LED1 is turned ON. Otherwise, all three LEDs are
+ * turned ON to indicate problems.
+ *
* @author Chieh-Jan Mike Liang <cliang4@cs.jhu.edu>
*/
{
int i;
error_t error;
+#if defined USE_AT45DB
+ storage_len_t expectedVolumeSize = 262144;
+#elif defined USE_STM25P
+ storage_len_t expectedVolumeSize = 1048576;
+#endif
call Leds.set(1);
- if (call BlockingBlock1.getSize() != 1048576) {
+ if (call BlockingBlock1.getSize() != expectedVolumeSize) {
call Leds.set(7);
return;
}
return;
}
- for (i = 0; i < 20; i++) {
+ for (i = 0; i < 50; i++) {
storage_addr_t writeAddr = call Random.rand32() % (call BlockingBlock1.getSize() - sizeof(storage_addr_t));
storage_len_t len = sizeof(storage_addr_t);
storage_addr_t readBuf;