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 FreescaleIAP
main.cpp
00001 #include "mbed.h" 00002 #include "FreescaleIAP.h" 00003 00004 // cantidad de bytes a guardar 00005 const int CANT = 10; 00006 00007 DigitalOut myled(LED_GREEN); 00008 Serial pc(USBTX, USBRX); 00009 00010 int main() 00011 { 00012 unsigned int status_prg = 0; 00013 00014 pc.baud(9600); 00015 00016 // address es la dirección donde grabará los 10 bytes 00017 // el último sector de FLASH 00018 const int address = flash_size() - SECTOR_SIZE; 00019 00020 pc.printf("direccion donde graba: %x\r\ncantidad de bytes maximo %d\r\n", address, SECTOR_SIZE); 00021 00022 // data apunta al inicio de la dirección donde están grabados loos datos 00023 char *data = (char*)address; 00024 00025 // erase_sector(address); // pone todo el sector de datos en 0xFF (borrado) 00026 00027 // buffer donde cargo datos que leo o que voy a escribir 00028 char valores[CANT]; 00029 00030 pc.printf("- contenido actual: ---\r\n"); 00031 // muestra el contenido de los 10 bytes 00032 // carga datos en el vector 00033 // si es 0xFF (nunca se utilizó) coloca en el vector un valor default 00034 for(int k =0; k < CANT; k++) { 00035 if (*(data + k) != 0xFF) 00036 valores[k] = *(data + k); 00037 else 00038 valores[k] = k; 00039 pc.printf("%x - %d\r\n", valores[k], valores[k]); 00040 } 00041 00042 pc.printf("- a grabar: ---\r\n"); 00043 00044 00045 bool grabado = false; 00046 while(true) { 00047 // si se recibe 'g' de la pc... 00048 if (pc.getc() == 'g'){ 00049 00050 // y no se grabó aun... 00051 if (!grabado){ 00052 // le suma 20 a cada valor en el vector 00053 for(int k =0; k < CANT; k++) { 00054 valores[k] = valores[k] + 20; 00055 pc.printf("%x - %d\r\n", valores[k], valores[k]); 00056 } 00057 00058 // borra el espacio de FLASH 00059 status_prg = erase_sector(address); 00060 pc.printf("borrado 0x%02X-----\r\n", status_prg); 00061 00062 // guarda el vector en FLASH 00063 status_prg = program_flash(address, (char*)&valores, CANT); 00064 pc.printf("grabado 0x%02X-----\r\n", status_prg); 00065 grabado = true; 00066 } 00067 } 00068 } 00069 }
Generated on Thu Jul 21 2022 08:50:52 by
1.7.2