IJFW - IchigoJamのBASICプログラムをメモリカード(MMCまたは互換カード)に保存したり読み出したりできるプログラム。メモリカードにファームウェアのファイルを置くだけで、電源ON時に自動的に書き換える機能も搭載(一応こちらがメイン)。LPC1114FN28専用。

Dependencies:   mbed

参考URL http://www.cyberchabudai.org/index.php/entry?tag=IJFW

Revision:
1:11f73f269fdc
Parent:
0:43cce7b453d0
--- a/main.cpp	Thu Apr 28 11:23:24 2016 +0000
+++ b/main.cpp	Wed Aug 17 07:19:20 2016 +0000
@@ -1,5 +1,5 @@
 #include "mbed.h"
-#include "FatfsIJFW.h"
+#include "FatfsIjfwConfigurable.h"
 #include "UartIsp.h"
 #include "I2CSlave2.h"
 #include "I2c2mem.h"
@@ -15,10 +15,11 @@
 
 SPI spi(dp2, dp1, dp6);                 // SPI for memory card access (mosi, miso, sck)
 DigitalOut cs(dp4);                     // Memory card cs pin
-FatfsIJFW fsij(&spi, &cs);              // Fatfs for Memory card
+FatfsIjfwConfigurable fsij(&spi, &cs);  // Fatfs for Memory card
 
 
-// Firmware file name
+// file name
+const char* CONFIG_FILE = "_config.txt";
 const char* BINFILE = "jam.bin";
 
 
@@ -39,12 +40,14 @@
     // Serial
     serial.baud(115200);
 
+    // Read Config File
+    ledCard = 1;
+    fsij.readConfigFile(CONFIG_FILE);
+    ledCard = 0;
+
     // Firmware update if bin file is found
-    fsij.mount();
-    if (fsij.open(BINFILE, MODE_RO) == FR_OK) {
-        fsij.close();
-        ledCard = 1;
-
+    ledCard = 1;
+    if (fsij.checkFirmFile(BINFILE)) {
         // Sequence of Entering UartISP mode
         ispIJ = 0; resetIJ = 0;     // ISP=L, Reset=L
         wait_ms(100);
@@ -58,7 +61,6 @@
         if (ret != UartIsp::NOERROR) {
             error();
         }
-        ledCard = 0;
     
         // reset MCU
         ispIJ = 1; resetIJ = 0;     // ISP=H, Reset=L
@@ -69,6 +71,7 @@
         // reset IJFW
         //NVIC_SystemReset();
     }
+    ledCard = 0;
 
     // Data conversion I2C to/from memory card
     //   address 0xA? -> EEPROM Emulation