registry flash read/ write
Dependencies: FreescaleIAP mbed
Fork of testregistr by
main.cpp@3:ad384b346c28, 2015-06-16 (annotated)
- Committer:
- raizel_varun
- Date:
- Tue Jun 16 08:36:57 2015 +0000
- Revision:
- 3:ad384b346c28
- Parent:
- 2:f20b253b3a0c
registry flash read / write
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
raizel_varun | 0:d665f794e35e | 1 | #include "mbed.h" |
raizel_varun | 0:d665f794e35e | 2 | #include "FreescaleIAP.h" |
raizel_varun | 0:d665f794e35e | 3 | |
raizel_varun | 0:d665f794e35e | 4 | Serial pc(USBTX,USBRX); |
raizel_varun | 0:d665f794e35e | 5 | |
raizel_varun | 0:d665f794e35e | 6 | int main() { |
raizel_varun | 3:ad384b346c28 | 7 | float var0,var1,var2,var3,var4,var5,var6,var7,var8,var9; |
raizel_varun | 3:ad384b346c28 | 8 | float dumar[10]={var0,var1,var2,var3,var4,var5,var6,var7,var8,var9}; |
raizel_varun | 3:ad384b346c28 | 9 | |
raizel_varun | 0:d665f794e35e | 10 | pc.printf("Starting\r\n"); |
raizel_varun | 1:7db8a959df19 | 11 | int* adress = (int*)(0x0003fc08+4); |
raizel_varun | 1:7db8a959df19 | 12 | // pc.printf("value at 3fc00 is %d\r\n",*adress); |
raizel_varun | 1:7db8a959df19 | 13 | // pc.printf("value at 3fc00 is %d\r\n",SECTOR_SIZE); |
raizel_varun | 1:7db8a959df19 | 14 | |
raizel_varun | 2:f20b253b3a0c | 15 | int address = flash_size() - (SECTOR_SIZE); //Write in last sector(simply use 256-xkb of file) |
raizel_varun | 1:7db8a959df19 | 16 | |
raizel_varun | 0:d665f794e35e | 17 | pc.printf("Starting %x \r\n",address); |
raizel_varun | 3:ad384b346c28 | 18 | char *data = (char*)address; |
raizel_varun | 0:d665f794e35e | 19 | pc.printf("Starting\r\n"); |
raizel_varun | 2:f20b253b3a0c | 20 | erase_sector(address);//cant erase the program |
raizel_varun | 3:ad384b346c28 | 21 | char numbers = 'd'; |
raizel_varun | 2:f20b253b3a0c | 22 | int i; |
raizel_varun | 1:7db8a959df19 | 23 | |
raizel_varun | 1:7db8a959df19 | 24 | // for(i=0;i<2560;i++){ |
raizel_varun | 1:7db8a959df19 | 25 | //numbers[i]=((3*i)+1);} |
raizel_varun | 2:f20b253b3a0c | 26 | Timer t; |
raizel_varun | 2:f20b253b3a0c | 27 | t.start(); |
raizel_varun | 3:ad384b346c28 | 28 | program_flash(address, (char*)&numbers,4); //10 integers of 4 bytes each: 40 bytes length |
raizel_varun | 2:f20b253b3a0c | 29 | //printf("heloooooooooooooooooooooooo"); |
raizel_varun | 2:f20b253b3a0c | 30 | t.stop(); |
raizel_varun | 0:d665f794e35e | 31 | pc.printf("Resulting flash: \r\n"); |
raizel_varun | 3:ad384b346c28 | 32 | for (i =0 ; i<5;i++) |
raizel_varun | 3:ad384b346c28 | 33 | printf("%d,%c\r\n",i, data[i]); |
raizel_varun | 2:f20b253b3a0c | 34 | |
raizel_varun | 2:f20b253b3a0c | 35 | pc.printf("Done %f\r\n\n",t.read()); |
raizel_varun | 0:d665f794e35e | 36 | pc.printf("value at %x\r\n",address); |
raizel_varun | 2:f20b253b3a0c | 37 | t.reset(); |
raizel_varun | 3:ad384b346c28 | 38 | |
raizel_varun | 0:d665f794e35e | 39 | |
raizel_varun | 0:d665f794e35e | 40 | //while (true) { |
raizel_varun | 0:d665f794e35e | 41 | //} |
raizel_varun | 3:ad384b346c28 | 42 | } |
raizel_varun | 3:ad384b346c28 | 43 | |
raizel_varun | 3:ad384b346c28 | 44 | uint8_t RD_FLASH(int ad1,int ad2) |
raizel_varun | 3:ad384b346c28 | 45 | { |
raizel_varun | 3:ad384b346c28 | 46 | for(int i = 0;i < a; i++) |
raizel_varun | 3:ad384b346c28 | 47 | g_flashd[i] = data[i];//read in to ram , can do othr functions now in g_flashd |
raizel_varun | 3:ad384b346c28 | 48 | |
raizel_varun | 3:ad384b346c28 | 49 | |
raizel_varun | 3:ad384b346c28 | 50 | } |
raizel_varun | 3:ad384b346c28 | 51 | |
raizel_varun | 3:ad384b346c28 | 52 | extern int a; |
raizel_varun | 3:ad384b346c28 | 53 | extern int g_flashd[a]; |
raizel_varun | 3:ad384b346c28 | 54 | |
raizel_varun | 3:ad384b346c28 | 55 | uint8_t WR_FLASH(int ad, int value) |
raizel_varun | 3:ad384b346c28 | 56 | { for(int i = 0;i < a; i++) |
raizel_varun | 3:ad384b346c28 | 57 | g_flashd[i] = data[i]; |
raizel_varun | 3:ad384b346c28 | 58 | g_flashd[ad-address] = value;//change data in ram, if wanted can change multiple variables |
raizel_varun | 3:ad384b346c28 | 59 | erase_sector(address); |
raizel_varun | 3:ad384b346c28 | 60 | program_flash(address, (char*)&g_flashd,(a*4)); |
raizel_varun | 3:ad384b346c28 | 61 | |
raizel_varun | 3:ad384b346c28 | 62 | } |
raizel_varun | 3:ad384b346c28 | 63 | |
raizel_varun | 3:ad384b346c28 | 64 | |
raizel_varun | 3:ad384b346c28 | 65 | |
raizel_varun | 3:ad384b346c28 | 66 | |
raizel_varun | 3:ad384b346c28 | 67 | |
raizel_varun | 3:ad384b346c28 | 68 | |
raizel_varun | 3:ad384b346c28 | 69 |