OSDN Git Service

update libMiMic
[mimic/MiMicSDK.git] / lib / src / flash / NyLPC_cOnchipFlashWriter.c
diff --git a/lib/src/flash/NyLPC_cOnchipFlashWriter.c b/lib/src/flash/NyLPC_cOnchipFlashWriter.c
deleted file mode 100644 (file)
index 5fde03f..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-#include "../driver/flash/LPC17xx_IAP.h"\r
-#include "NyLPC_cOnchipFlashWriter.h"\r
-\r
-\r
-/**\r
- * 指定したアドレスが、オンチップフラッシュかどうか\r
- */\r
-NyLPC_TBool NyLPC_cOnchipFlashWriter_isOnchipFlash(const void* i_addr)\r
-{\r
-       unsigned long snum;\r
-       return LPC17xx_IAP_addr2Sector(i_addr,&snum)==LPC17xx_IAP_CMD_SUCCESS;\r
-}\r
-\r
-NyLPC_TUInt8 _work[256];\r
-\r
-\r
-NyLPC_TBool NyLPC_cOnchipFlashWriter_write(const void* i_dest,const void* i_src,NyLPC_TUInt32 i_size)\r
-{\r
-       NyLPC_TUInt32 size;\r
-       const char* src;\r
-       NyLPC_TUInt32 snum;\r
-       const char* fblock_addr;\r
-       const char* dest_addr;\r
-       NyLPC_TUInt32 wsize;\r
-       NyLPC_TUInt16 s_padding;\r
-       NyLPC_TUInt16 free_size;\r
-       if(i_size%4!=0){\r
-               NyLPC_OnErrorGoto(Error);\r
-       }\r
-       if(((NyLPC_TUInt32)i_dest)%4!=0){\r
-               NyLPC_OnErrorGoto(Error);\r
-       }\r
-       size=i_size;\r
-       src=(const char*)i_src;\r
-       dest_addr=(const char*)i_dest;\r
-       for(;size>0;){\r
-               //開始位置の端数を調べる\r
-               s_padding=((NyLPC_TUInt32)dest_addr)%256;\r
-               //書き込みアドレス取得\r
-               fblock_addr=dest_addr-s_padding;\r
-               //書込み可能サイズを計算\r
-               free_size=256-s_padding;\r
-               //書込みサイズを決定\r
-               wsize=(free_size>size)?size:free_size;\r
-               //Flashから一時RAMへ前方パディングを読む\r
-               if(s_padding>0){\r
-                       memcpy(_work,fblock_addr,s_padding);\r
-               }\r
-               //書き込むデータを一時RAMへ書き込む\r
-               memcpy(_work+s_padding,src,wsize);\r
-               //後半\r
-               if(256-(wsize+s_padding)>0){\r
-                       memcpy(_work+s_padding+wsize,fblock_addr+(wsize+s_padding),256-(wsize+s_padding));\r
-               }\r
-\r
-               //Flashへ書込み\r
-               //開始セクタ\r
-               if(!LPC17xx_IAP_addr2Sector(fblock_addr,&snum)){\r
-                       NyLPC_OnErrorGoto(Error);\r
-               }\r
-               //IAPのprepareコマンド\r
-\r
-               if(LPC17xx_IAP_CMD_SUCCESS!=LPC17xx_IAP_prepare(snum,snum)){\r
-                       NyLPC_OnErrorGoto(Error);\r
-               }\r
-               //IAPのwriteコマンド\r
-               if(LPC17xx_IAP_CMD_SUCCESS!=LPC17xx_IAP_copyRam2Flash(fblock_addr,_work,256)){\r
-                       NyLPC_OnErrorGoto(Error);\r
-               }\r
-               dest_addr+=wsize;\r
-               src+=wsize;\r
-               size-=wsize;\r
-       }\r
-       return NyLPC_TBool_TRUE;\r
-Error:\r
-       return NyLPC_TBool_FALSE;\r
-}\r
-\r
-/**\r
- * セクタ+オフセット形式で、データを書き込みます。\r
- */\r
-NyLPC_TBool NyLPC_cOnchipFlashWriter_writeSector(NyLPC_TUInt16 i_sector,NyLPC_TUInt32 i_offset,const void* i_src,NyLPC_TUInt32 i_size)\r
-{\r
-       void* addr;\r
-       if(!LPC17xx_IAP_sector2Addr(i_sector,&addr)){\r
-               return NyLPC_TBool_FALSE;\r
-       }\r
-       addr=(void*)((NyLPC_TUInt32)addr+i_offset);\r
-       return NyLPC_cOnchipFlashWriter_write(addr,i_src,i_size);\r
-\r
-}\r
-/**\r
- * FlashRomのセクタ番号Nにイレースを実行します。\r
- */\r
-NyLPC_TBool NyLPC_cOnchipFlashWriter_elase(NyLPC_TUInt16 i_sector_s,NyLPC_TUInt16 i_sector_e)\r
-{\r
-       if(LPC17xx_IAP_CMD_SUCCESS!=LPC17xx_IAP_prepare(i_sector_s,i_sector_e)){\r
-               return NyLPC_TBool_FALSE;\r
-       }\r
-       if(LPC17xx_IAP_CMD_SUCCESS!=LPC17xx_IAP_erase(i_sector_s,i_sector_e)){\r
-               return NyLPC_TBool_FALSE;\r
-       }\r
-       return NyLPC_TBool_TRUE;\r
-}\r
-\r
-\r
-\r
-#ifdef TEST\r
-#include "stdio.h"\r
-unsigned long buf[128]={0x1,0x2,0x03,0x04,0x05};\r
-#define MIMIC_CONFIG_ADDR ((long*)(0x00018000+1280))\r
-void setup(void)\r
-{\r
-       NyLPC_TcFlashWriter_t writer;\r
-       NyLPC_cFlashWriter_initialize(&writer);\r
-       unsigned long p;\r
-       NyLPC_cFlashWriter_elase(&writer,29);\r
-//     NyLPC_cFlashWriter_write(&writer,MIMIC_CONFIG_ADDR-8,buf,5*4);\r
-       NyLPC_cFlashWriter_finalize(&writer);\r
-       return;\r
-}\r
-void loop(void)\r
-{\r
-       //Implementation\r
-       //ここにメインタスクを書きます。\r
-       for(;;){}\r
-}\r
-#endif\r