
Basic
LPG_FlashIAP_Processing/LPG_FlashIAP_Processing.cpp
- Committer:
- lwtroach
- Date:
- 2019-04-24
- Revision:
- 6:86eea1bcf499
- Parent:
- LPG_FlashIAP/LPG_FlashIAP.cpp@ 3:cb954c31709f
File content as of revision 6:86eea1bcf499:
#include "LPG_FlashIAP_Processing.h" FlashIAP flash; int index = 0; char* writeBuf; char* readBuf; void LPG_FlashIAP_InitIAP() { flash.init(); } void LPG_FlashIAP_WriteAndReadExamination(uint32_t addr, RawSerial DebugPort) { int sector = flash.get_sector_size(addr); int page = flash.get_page_size(); int size = flash.get_flash_size(); switch(index) { case 0: writeBuf = "WRITE TO FLASH_0"; break; case 1: writeBuf = "WRITE TO FLASH_1"; break; case 2: writeBuf = "WRITE TO FLASH_2"; break; case 3: writeBuf = "WRITE TO FLASH_3"; break; case 4: writeBuf = "WRITE TO FLASH_4"; break; case 5: writeBuf = "WRITE TO FLASH_5"; break; case 6: writeBuf = "WRITE TO FLASH_6"; break; default: index = -1; break; } index++; DebugPort.printf("String : %s\r\nIndex : %d",writeBuf,index); DebugPort.puts("\r\n"); DebugPort.printf("sector = %d, page = %d, size = %d\r\n", sector, page, size); bool eraseOK = flash.erase(addr,sector); DebugPort.printf("erase : %s\r\n",((eraseOK==0)?"Fine":"Fail")); bool programOK = flash.program(&writeBuf[0],addr,sector); DebugPort.printf("program : %s\r\n",((programOK==0)?"Fine":"Fail")); LPG_FlashIAP_ReadFromFlash(&readBuf[0], addr); DebugPort.printf("Buffer data : %s\r\n",writeBuf); DebugPort.printf("Read result : %s\r\n",readBuf); } void LPG_FlashIAP_WriteToFlash(char* buffer, uint32_t addr, RawSerial DebugPort ) { /* 目前無法erase成功,手動erase後可以寫入 */ int sector = flash.get_sector_size(addr); flash.erase(addr,sector); flash.program(buffer,addr,sector); } void LPG_FlashIAP_ReadFromFlash(char* buffer,uint32_t addr) { flash.read(buffer,addr,sizeof(uint32_t)); }