| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- // This stress test will create and write files until the SD is full.
 
- #include <SPI.h> 
 
- #include <SdFat.h>
 
- // SD chip select pin.
 
- const uint8_t SD_CS_PIN = SS;
 
- // Set write buffer size.
 
- #ifdef __arm__
 
- #ifndef CORE_TEENSY
 
- // Due
 
- const size_t BUF_SIZE = 32768;
 
- #else  // CORE_TEENSY
 
- // Teensy 3.0
 
- const size_t BUF_SIZE = 8192;
 
- #endif  // CORE_TEENSY
 
- #elif defined(RAMEND) && RAMEND > 5000
 
- // AVR with more than 4 KB RAM
 
- const size_t BUF_SIZE = 4096;
 
- #else  // __arm__
 
- // other
 
- const size_t BUF_SIZE = 512;
 
- #endif  // __arm__
 
- const size_t FILE_SIZE_KB = 10240;
 
- const uint16_t BUFS_PER_FILE = (1024L*FILE_SIZE_KB/BUF_SIZE);
 
- SdFat sd;
 
- SdFile file;
 
- uint8_t buf[BUF_SIZE];
 
- char name[13];
 
- //------------------------------------------------------------------------------
 
- void setup() {
 
-   Serial.begin(9600);
 
-   Serial.print("BUF_SIZE ");
 
-   Serial.println(BUF_SIZE);
 
-   Serial.println("Type any character to start");
 
-   while (Serial.read() < 0) {}
 
-   
 
-   if (!sd.begin(SD_CS_PIN))sd.errorHalt("sd.begin");
 
-   
 
-   // Fill buf with known value.
 
-   for (size_t i = 0; i < BUF_SIZE; i++) buf[i] = i;
 
-   
 
-   // Wait to begin.
 
-   do {delay(10);} while (Serial.read() >= 0);
 
-   Serial.println("Type any character to stop after next file");
 
- }
 
- //------------------------------------------------------------------------------
 
- void loop() {
 
-   // Free KB on SD.
 
-   uint32_t freeKB = sd.vol()->freeClusterCount()*sd.vol()->blocksPerCluster()/2;
 
-   Serial.print("Free KB: ");
 
-   Serial.println(freeKB);
 
-   if (freeKB < 2*FILE_SIZE_KB) {
 
-     Serial.println(" Done!");
 
-     while(1);
 
-   }
 
-   sprintf(name, "%lu.DAT", freeKB);
 
-   if (!file.open(name, O_WRITE | O_CREAT | O_TRUNC)) {
 
-     sd.errorHalt("Open error!");
 
-   }
 
-   for (uint16_t i = 0; i < BUFS_PER_FILE; i++) {
 
-     if (file.write(buf, BUF_SIZE) != BUF_SIZE) {
 
-       sd.errorHalt("Write error!");
 
-     }
 
-   }
 
-   file.close();
 
-   if (Serial.available()) {
 
-     Serial.println("Stopped!");
 
-     while(1);
 
-   }
 
- }
 
 
  |