dhgdh

Dependencies:   MAX44000 PWM_Tone_Library nexpaq_mdk

Fork of LED_Demo by joey shelton

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "SDFileSystem.h"
00003 #include "test_env.h"
00004 
00005 #if defined(TARGET_KL25Z)
00006 SDFileSystem sd(PTD2, PTD3, PTD1, PTD0, "sd");
00007 
00008 #elif defined(TARGET_KL46Z)
00009 SDFileSystem sd(PTD6, PTD7, PTD5, PTD4, "sd");
00010 
00011 #elif defined(TARGET_K64F) || defined(TARGET_K66F)
00012 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd");
00013 
00014 #elif defined(TARGET_K22F)
00015 SDFileSystem sd(PTD6, PTD7, PTD5, PTD4, "sd");
00016 
00017 #elif defined(TARGET_K20D50M)
00018 SDFileSystem sd(PTD2, PTD3, PTD1, PTC2, "sd");
00019 
00020 #elif defined(TARGET_nRF51822)
00021 SDFileSystem sd(p12, p13, p15, p14, "sd");
00022 
00023 #elif defined(TARGET_NUCLEO_F030R8) || \
00024       defined(TARGET_NUCLEO_F070RB) || \
00025       defined(TARGET_NUCLEO_F072RB) || \
00026       defined(TARGET_NUCLEO_F091RC) || \
00027       defined(TARGET_NUCLEO_F103RB) || \
00028       defined(TARGET_NUCLEO_F302R8) || \
00029       defined(TARGET_NUCLEO_F303RE) || \
00030       defined(TARGET_NUCLEO_F334R8) || \
00031       defined(TARGET_NUCLEO_F401RE) || \
00032       defined(TARGET_NUCLEO_F410RB) || \
00033       defined(TARGET_NUCLEO_F411RE) || \
00034       defined(TARGET_NUCLEO_L053R8) || \
00035       defined(TARGET_NUCLEO_L073RZ) || \
00036       defined(TARGET_NUCLEO_L152RE)
00037 SDFileSystem sd(D11, D12, D13, D10, "sd");
00038 
00039 #elif defined(TARGET_DISCO_F051R8) || \
00040       defined(TARGET_NUCLEO_L031K6)
00041 SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
00042 
00043 #elif defined(TARGET_LPC2368)
00044 SDFileSystem sd(p11, p12, p13, p14, "sd");
00045 
00046 #elif defined(TARGET_LPC11U68)
00047 SDFileSystem sd(D11, D12, D13, D10, "sd");
00048 
00049 #elif defined(TARGET_LPC1549)
00050 SDFileSystem sd(D11, D12, D13, D10, "sd");
00051 
00052 #elif defined(TARGET_RZ_A1H)
00053 SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd");
00054 
00055 #elif defined(TARGET_LPC11U37H_401)
00056 SDFileSystem sd(SDMOSI, SDMISO, SDSCLK, SDSSEL, "sd");
00057 
00058 #else
00059 SDFileSystem sd(p11, p12, p13, p14, "sd");
00060 #endif
00061 
00062 namespace {
00063 const char *sd_file_path = "/sd/out.txt";
00064 const int DATA_SIZE = 256;
00065 }
00066 
00067 int main() {
00068     MBED_HOSTTEST_TIMEOUT(15);
00069     MBED_HOSTTEST_SELECT(default_auto);
00070     MBED_HOSTTEST_DESCRIPTION(SD File System);
00071     MBED_HOSTTEST_START("MBED_A12");
00072 
00073     uint8_t data_written[DATA_SIZE] = { 0 };
00074     bool result = false;
00075 
00076     // Fill data_written buffer with random data
00077     // Write these data into the file
00078     bool write_result = false;
00079     {
00080         printf("SD: Writing ... ");
00081         FILE *f = fopen(sd_file_path, "w");
00082         if (f) {
00083             for (int i = 0; i < DATA_SIZE; i++) {
00084                 data_written[i] = rand() % 0XFF;
00085                 fprintf(f, "%c", data_written[i]);
00086             }
00087             write_result = true;
00088             fclose(f);
00089         }
00090         printf("[%s]\r\n", write_result ? "OK" : "FAIL");
00091     }
00092 
00093     // Read back the data from the file and store them in data_read
00094     bool read_result = false;
00095     {
00096         printf("SD: Reading data ... ");
00097         FILE *f = fopen(sd_file_path, "r");
00098         if (f) {
00099               read_result = true;
00100             for (int i = 0; i < DATA_SIZE; i++) {
00101                 uint8_t data = fgetc(f);
00102                 if (data != data_written[i]) {
00103                     read_result = false;
00104                     break;
00105                 }
00106             }
00107             fclose(f);
00108         }
00109         printf("[%s]\r\n", read_result ? "OK" : "FAIL");
00110     }
00111 
00112     result = write_result && read_result;
00113     MBED_HOSTTEST_RESULT(result);
00114 }