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: mbed-rtos mbed wolfSSL
Fork of sd_duplicator by
main.cpp@3:57cbfc7d9b62, 2016-12-06 (annotated)
- Committer:
- jlharper
- Date:
- Tue Dec 06 13:27:55 2016 +0000
- Revision:
- 3:57cbfc7d9b62
- Parent:
- 2:166e98bcd1cc
- Child:
- 4:2bcb836ba0de
12-6
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| tmasrat | 0:b453be3137c7 | 1 | #include "mbed.h" |
| jlharper | 1:7827a11dc627 | 2 | #include "SDBlock.h" |
| jlharper | 1:7827a11dc627 | 3 | #include "Crypto.h" |
| jlharper | 1:7827a11dc627 | 4 | |
| jlharper | 1:7827a11dc627 | 5 | DigitalOut led1(LED1); |
| jlharper | 2:166e98bcd1cc | 6 | DigitalOut led4(LED4); |
| jlharper | 3:57cbfc7d9b62 | 7 | |
| jlharper | 3:57cbfc7d9b62 | 8 | uint8_t hash[32]; |
| jlharper | 3:57cbfc7d9b62 | 9 | uint8_t buffer[512]; |
| jlharper | 3:57cbfc7d9b62 | 10 | SHA256 h; |
| jlharper | 3:57cbfc7d9b62 | 11 | |
| jlharper | 1:7827a11dc627 | 12 | int main() |
| jlharper | 1:7827a11dc627 | 13 | { |
| jlharper | 1:7827a11dc627 | 14 | SDBlock original(p5, p6, p7, p22); |
| jlharper | 1:7827a11dc627 | 15 | const int x = original.disk_initialize(); |
| jlharper | 1:7827a11dc627 | 16 | printf("************\n"); |
| jlharper | 1:7827a11dc627 | 17 | printf("%d\n", x); |
| jlharper | 3:57cbfc7d9b62 | 18 | SDBlock duplicate(p11, p12, p13, p21); |
| jlharper | 3:57cbfc7d9b62 | 19 | const int z = duplicate.disk_initialize(); |
| jlharper | 1:7827a11dc627 | 20 | printf("%d\n", z); |
| jlharper | 1:7827a11dc627 | 21 | const int y = original.disk_status(); |
| jlharper | 3:57cbfc7d9b62 | 22 | printf("original status: %d\n", y); |
| jlharper | 3:57cbfc7d9b62 | 23 | const int t = duplicate.disk_status(); |
| jlharper | 3:57cbfc7d9b62 | 24 | printf("duplicate status: %d\n", t); |
| jlharper | 1:7827a11dc627 | 25 | //s is sector |
| jlharper | 1:7827a11dc627 | 26 | const uint32_t s = original.disk_sectors(); |
| jlharper | 3:57cbfc7d9b62 | 27 | printf("sector size %d\n", s); |
| jlharper | 1:7827a11dc627 | 28 | printf("buffer %d\n", buffer); |
| jlharper | 3:57cbfc7d9b62 | 29 | |
| jlharper | 3:57cbfc7d9b62 | 30 | |
| jlharper | 1:7827a11dc627 | 31 | //start time |
| jlharper | 3:57cbfc7d9b62 | 32 | //time_t time_start = time(NULL); |
| jlharper | 3:57cbfc7d9b62 | 33 | for (int i = 0; i <= 100; ++i) |
| jlharper | 1:7827a11dc627 | 34 | { |
| jlharper | 1:7827a11dc627 | 35 | const int r = original.disk_read(buffer, i, 1); |
| jlharper | 1:7827a11dc627 | 36 | if (r !=0) |
| jlharper | 1:7827a11dc627 | 37 | { |
| jlharper | 1:7827a11dc627 | 38 | printf("%d\n", r); |
| jlharper | 1:7827a11dc627 | 39 | } |
| jlharper | 3:57cbfc7d9b62 | 40 | printf("disk read "); |
| jlharper | 3:57cbfc7d9b62 | 41 | /* const int rd2 = duplicate.disk_write(buffer, i, 1); |
| jlharper | 1:7827a11dc627 | 42 | if (rd2 != 0) |
| jlharper | 1:7827a11dc627 | 43 | { |
| jlharper | 1:7827a11dc627 | 44 | printf("%d\n", rd2); |
| jlharper | 3:57cbfc7d9b62 | 45 | }*/ |
| jlharper | 3:57cbfc7d9b62 | 46 | |
| jlharper | 3:57cbfc7d9b62 | 47 | h.update(buffer, 512); |
| jlharper | 3:57cbfc7d9b62 | 48 | printf("digest updated, block %d",i); |
| jlharper | 3:57cbfc7d9b62 | 49 | |
| jlharper | 3:57cbfc7d9b62 | 50 | /* if(i % 1000 == 0) |
| jlharper | 1:7827a11dc627 | 51 | { |
| jlharper | 3:57cbfc7d9b62 | 52 | status update |
| jlharper | 3:57cbfc7d9b62 | 53 | double percentage = (i/s) * 100; |
| jlharper | 1:7827a11dc627 | 54 | printf("percent copied: %d\n", percentage); |
| jlharper | 3:57cbfc7d9b62 | 55 | time elapsed |
| jlharper | 1:7827a11dc627 | 56 | time_t time_current = time(NULL); |
| jlharper | 1:7827a11dc627 | 57 | int time_working = time_start - time_current; |
| jlharper | 1:7827a11dc627 | 58 | double speed = (i * 512) / time_working; |
| jlharper | 1:7827a11dc627 | 59 | |
| jlharper | 1:7827a11dc627 | 60 | printf("speed (bytes/s): %d\n", speed); |
| jlharper | 3:57cbfc7d9b62 | 61 | } */ |
| jlharper | 1:7827a11dc627 | 62 | } |
| jlharper | 3:57cbfc7d9b62 | 63 | h.finalize(hash); |
| jlharper | 3:57cbfc7d9b62 | 64 | printf("finished\n"); |
| jlharper | 3:57cbfc7d9b62 | 65 | printf("hash: "); |
| jlharper | 3:57cbfc7d9b62 | 66 | for(int i = 0; i < 32; ++i) |
| jlharper | 3:57cbfc7d9b62 | 67 | printf("%02x", hash[i]); |
| jlharper | 3:57cbfc7d9b62 | 68 | printf("\n"); |
| tmasrat | 0:b453be3137c7 | 69 | |
| jlharper | 3:57cbfc7d9b62 | 70 | //when finished do this light pattern |
| jlharper | 3:57cbfc7d9b62 | 71 | while(true) |
| jlharper | 3:57cbfc7d9b62 | 72 | { |
| jlharper | 3:57cbfc7d9b62 | 73 | led1=0; |
| jlharper | 3:57cbfc7d9b62 | 74 | led4=1; |
| jlharper | 3:57cbfc7d9b62 | 75 | wait(.5); |
| jlharper | 3:57cbfc7d9b62 | 76 | led1=1; |
| jlharper | 3:57cbfc7d9b62 | 77 | led4=0; |
| jlharper | 3:57cbfc7d9b62 | 78 | wait(.5); |
| jlharper | 3:57cbfc7d9b62 | 79 | } |
| jlharper | 3:57cbfc7d9b62 | 80 | }//end main |
