registry flash read/ write
Dependencies: FreescaleIAP mbed
Fork of testregistr by
main.cpp
- Committer:
- raizel_varun
- Date:
- 2015-06-16
- Revision:
- 3:ad384b346c28
- Parent:
- 2:f20b253b3a0c
File content as of revision 3:ad384b346c28:
#include "mbed.h" #include "FreescaleIAP.h" Serial pc(USBTX,USBRX); int main() { float var0,var1,var2,var3,var4,var5,var6,var7,var8,var9; float dumar[10]={var0,var1,var2,var3,var4,var5,var6,var7,var8,var9}; pc.printf("Starting\r\n"); int* adress = (int*)(0x0003fc08+4); // pc.printf("value at 3fc00 is %d\r\n",*adress); // pc.printf("value at 3fc00 is %d\r\n",SECTOR_SIZE); int address = flash_size() - (SECTOR_SIZE); //Write in last sector(simply use 256-xkb of file) pc.printf("Starting %x \r\n",address); char *data = (char*)address; pc.printf("Starting\r\n"); erase_sector(address);//cant erase the program char numbers = 'd'; int i; // for(i=0;i<2560;i++){ //numbers[i]=((3*i)+1);} Timer t; t.start(); program_flash(address, (char*)&numbers,4); //10 integers of 4 bytes each: 40 bytes length //printf("heloooooooooooooooooooooooo"); t.stop(); pc.printf("Resulting flash: \r\n"); for (i =0 ; i<5;i++) printf("%d,%c\r\n",i, data[i]); pc.printf("Done %f\r\n\n",t.read()); pc.printf("value at %x\r\n",address); t.reset(); //while (true) { //} } uint8_t RD_FLASH(int ad1,int ad2) { for(int i = 0;i < a; i++) g_flashd[i] = data[i];//read in to ram , can do othr functions now in g_flashd } extern int a; extern int g_flashd[a]; uint8_t WR_FLASH(int ad, int value) { for(int i = 0;i < a; i++) g_flashd[i] = data[i]; g_flashd[ad-address] = value;//change data in ram, if wanted can change multiple variables erase_sector(address); program_flash(address, (char*)&g_flashd,(a*4)); }