registry flash read/ write

Dependencies:   FreescaleIAP mbed

Fork of testregistr by Team Fox

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?

UserRevisionLine numberNew 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