IJFW - IchigoJamのBASICプログラムをメモリカード(MMCまたは互換カード)に保存したり読み出したりできるプログラム。メモリカードにファームウェアのファイルを置くだけで、電源ON時に自動的に書き換える機能も搭載(一応こちらがメイン)。LPC1114FN28専用。
参考URL http://www.cyberchabudai.org/index.php/entry?tag=IJFW
Diff: main.cpp
- 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