Revision:
1:2713ad5a5dab
Parent:
0:d21f696a705c
--- a/FlashRW.cpp	Fri Nov 09 11:14:05 2018 +0000
+++ b/FlashRW.cpp	Sat Nov 10 10:46:10 2018 +0000
@@ -1,12 +1,34 @@
 #include "mbed.h"
 #include "FreescaleIAP.h"
 
-static int write_address = flash_size() - SECTOR_SIZE;
-static int read_address = flash_size() - SECTOR_SIZE;
-int write(int* data, size_t data_size){
-    erase_sector(write_address);
-    program_flash(write_address, (char*)&data, data_size);
-    write_address += data_size;
-    return 0;
+static int start_address = flash_size() - SECTOR_SIZE;
+static int write_address = start_address;
+
+IAPCode write(int* data, size_t data_len){
+    IAPCode errorCode;
+    
+    if((errorCode = erase_sector(write_address)) != 0)
+        return errorCode;
+    if((errorCode = program_flash(write_address, (char*)data, data_len)) != 0)
+        return errorCode;
+    write_address += data_len;
+    return Success;
 }
 
+IAPCode write(int data){
+    IAPCode errorCode;
+    if((errorCode = erase_sector(write_address)) != 0)
+        return errorCode;
+    if((errorCode = program_flash(write_address, (char*)data, sizeof(data))) != 0)
+        return errorCode;
+    write_address += sizeof(data);
+    return Success;    
+}
+
+int* getData(){
+    return (int*)(start_address);    
+}
+
+int getSize(){
+    return ((write_address - start_address)/sizeof(int));
+}
\ No newline at end of file