Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FatFileSystemCpp SDHC_FileSystem mbed
main.cpp@0:58238bb83503, 2013-02-08 (annotated)
- Committer:
- okini3939
- Date:
- Fri Feb 08 01:42:33 2013 +0000
- Revision:
- 0:58238bb83503
- Child:
- 1:2b18f6628bc1
1st build;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:58238bb83503 | 1 | #include "mbed.h" |
okini3939 | 0:58238bb83503 | 2 | #include "SDHCFileSystem.h" |
okini3939 | 0:58238bb83503 | 3 | |
okini3939 | 0:58238bb83503 | 4 | #define SIZE 10240 // KB |
okini3939 | 0:58238bb83503 | 5 | |
okini3939 | 0:58238bb83503 | 6 | Serial pc(USBTX, USBRX); |
okini3939 | 0:58238bb83503 | 7 | DigitalOut myled(LED1); |
okini3939 | 0:58238bb83503 | 8 | SDFileSystem sd(p5, p6, p7, p8, "sd"); |
okini3939 | 0:58238bb83503 | 9 | Timer t; |
okini3939 | 0:58238bb83503 | 10 | |
okini3939 | 0:58238bb83503 | 11 | float wtest (int b, int d) { |
okini3939 | 0:58238bb83503 | 12 | int i; |
okini3939 | 0:58238bb83503 | 13 | int s = b / d; |
okini3939 | 0:58238bb83503 | 14 | char buf[d]; |
okini3939 | 0:58238bb83503 | 15 | FILE *fp; |
okini3939 | 0:58238bb83503 | 16 | |
okini3939 | 0:58238bb83503 | 17 | fp = fopen("/sd/sdhc_test.dat", "w"); |
okini3939 | 0:58238bb83503 | 18 | if (!fp) return 0; |
okini3939 | 0:58238bb83503 | 19 | myled = 1; |
okini3939 | 0:58238bb83503 | 20 | t.reset(); |
okini3939 | 0:58238bb83503 | 21 | t.start(); |
okini3939 | 0:58238bb83503 | 22 | for (i = 0; i < s; i ++) { |
okini3939 | 0:58238bb83503 | 23 | fwrite(buf, sizeof(unsigned char), d, fp); |
okini3939 | 0:58238bb83503 | 24 | } |
okini3939 | 0:58238bb83503 | 25 | fclose(fp); |
okini3939 | 0:58238bb83503 | 26 | t.stop(); |
okini3939 | 0:58238bb83503 | 27 | myled = 0; |
okini3939 | 0:58238bb83503 | 28 | return t.read(); |
okini3939 | 0:58238bb83503 | 29 | } |
okini3939 | 0:58238bb83503 | 30 | |
okini3939 | 0:58238bb83503 | 31 | float rtest (int b, int d) { |
okini3939 | 0:58238bb83503 | 32 | int i; |
okini3939 | 0:58238bb83503 | 33 | int s = b / d; |
okini3939 | 0:58238bb83503 | 34 | char buf[d]; |
okini3939 | 0:58238bb83503 | 35 | FILE *fp; |
okini3939 | 0:58238bb83503 | 36 | |
okini3939 | 0:58238bb83503 | 37 | fp = fopen("/sd/test.dat", "r"); |
okini3939 | 0:58238bb83503 | 38 | if (!fp) return 0; |
okini3939 | 0:58238bb83503 | 39 | myled = 1; |
okini3939 | 0:58238bb83503 | 40 | t.reset(); |
okini3939 | 0:58238bb83503 | 41 | t.start(); |
okini3939 | 0:58238bb83503 | 42 | for (i = 0; i < s; i ++) { |
okini3939 | 0:58238bb83503 | 43 | fread(buf, sizeof(unsigned char), d, fp); |
okini3939 | 0:58238bb83503 | 44 | } |
okini3939 | 0:58238bb83503 | 45 | fclose(fp); |
okini3939 | 0:58238bb83503 | 46 | t.stop(); |
okini3939 | 0:58238bb83503 | 47 | myled = 0; |
okini3939 | 0:58238bb83503 | 48 | return t.read(); |
okini3939 | 0:58238bb83503 | 49 | } |
okini3939 | 0:58238bb83503 | 50 | |
okini3939 | 0:58238bb83503 | 51 | int main() { |
okini3939 | 0:58238bb83503 | 52 | |
okini3939 | 0:58238bb83503 | 53 | pc.baud(115200); |
okini3939 | 0:58238bb83503 | 54 | pc.printf("start\r\n"); |
okini3939 | 0:58238bb83503 | 55 | |
okini3939 | 0:58238bb83503 | 56 | pc.printf("write 1: %f KB/sec\r\n", (float)SIZE / wtest(SIZE * 1024, 1)); |
okini3939 | 0:58238bb83503 | 57 | pc.printf("read 1: %f KB/sec\r\n", (float)SIZE / rtest(SIZE * 1024, 1)); |
okini3939 | 0:58238bb83503 | 58 | pc.printf("write 100: %f KB/sec\r\n", (float)SIZE / wtest(SIZE * 1024, 100)); |
okini3939 | 0:58238bb83503 | 59 | pc.printf("read 100: %f KB/sec\r\n", (float)SIZE / rtest(SIZE * 1024, 100)); |
okini3939 | 0:58238bb83503 | 60 | pc.printf("write 10k: %f KB/sec\r\n", (float)SIZE / wtest(SIZE * 1024, 10000)); |
okini3939 | 0:58238bb83503 | 61 | pc.printf("read 10k: %f KB/sec\r\n", (float)SIZE / rtest(SIZE * 1024, 10000)); |
okini3939 | 0:58238bb83503 | 62 | |
okini3939 | 0:58238bb83503 | 63 | return 0; |
okini3939 | 0:58238bb83503 | 64 | } |