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

Dependencies:   mbed

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

Committer:
oks486
Date:
Sun Aug 21 07:51:01 2016 +0000
Revision:
2:daf6c4719496
Parent:
0:43cce7b453d0
Modified I2c2mem for "FILES" command

Who changed what in which revision?

UserRevisionLine numberNew contents of line
oks486 0:43cce7b453d0 1 #ifndef FATFS_IJFW_H
oks486 0:43cce7b453d0 2 #define FATFS_IJFW_H
oks486 0:43cce7b453d0 3
oks486 0:43cce7b453d0 4 #include "mbed.h"
oks486 0:43cce7b453d0 5 #include "diskio.h"
oks486 0:43cce7b453d0 6 #include "ff.h"
oks486 0:43cce7b453d0 7
oks486 0:43cce7b453d0 8 enum FileMode {
oks486 0:43cce7b453d0 9 MODE_WR,
oks486 0:43cce7b453d0 10 MODE_RO,
oks486 0:43cce7b453d0 11 MODE_APPEND,
oks486 0:43cce7b453d0 12 MODE_OVERWRITE,
oks486 0:43cce7b453d0 13 };
oks486 0:43cce7b453d0 14
oks486 0:43cce7b453d0 15 class FatfsIJFW {
oks486 0:43cce7b453d0 16 public:
oks486 0:43cce7b453d0 17
oks486 0:43cce7b453d0 18 FatfsIJFW(SPI* _spi, DigitalOut* _cs);
oks486 0:43cce7b453d0 19
oks486 0:43cce7b453d0 20 int mount();
oks486 0:43cce7b453d0 21 int open(const char* name, const FileMode mode);
oks486 0:43cce7b453d0 22 int close();
oks486 0:43cce7b453d0 23 int remove(const char* filename);
oks486 0:43cce7b453d0 24 int mkdir(const char* name);
oks486 0:43cce7b453d0 25 int read(char* buf, const int length);
oks486 0:43cce7b453d0 26 int write(const char* buf, const int length);
oks486 0:43cce7b453d0 27 int lseek(int pos);
oks486 0:43cce7b453d0 28 int filesize();
oks486 0:43cce7b453d0 29 void timerproc();
oks486 0:43cce7b453d0 30
oks486 0:43cce7b453d0 31 DSTATUS disk_initialize(BYTE drv);
oks486 0:43cce7b453d0 32 DSTATUS disk_status(BYTE drv);
oks486 0:43cce7b453d0 33 DRESULT disk_read(BYTE drv, BYTE* buff, DWORD sector, UINT count);
oks486 0:43cce7b453d0 34 DRESULT disk_write(BYTE drv, const BYTE* buff, DWORD sector, UINT count);
oks486 0:43cce7b453d0 35 DRESULT disk_ioctl(BYTE drv, BYTE cmd, void* buff);
oks486 0:43cce7b453d0 36
oks486 0:43cce7b453d0 37 protected:
oks486 0:43cce7b453d0 38
oks486 0:43cce7b453d0 39 SPI* spi;
oks486 0:43cce7b453d0 40 DigitalOut* cs;
oks486 0:43cce7b453d0 41 FATFS fs;
oks486 0:43cce7b453d0 42 FIL file;
oks486 0:43cce7b453d0 43
oks486 0:43cce7b453d0 44 int timerCount;
oks486 0:43cce7b453d0 45 DSTATUS Stat;
oks486 0:43cce7b453d0 46
oks486 0:43cce7b453d0 47 int select(void);
oks486 0:43cce7b453d0 48 void deselect(void);
oks486 0:43cce7b453d0 49 int waitReady(int wait);
oks486 0:43cce7b453d0 50 char sendCommand(BYTE cmd, DWORD arg);
oks486 0:43cce7b453d0 51 int rcvDataBlock(BYTE *buff, UINT btr);
oks486 0:43cce7b453d0 52 int sendDataBlock(const BYTE *buff, BYTE token);
oks486 0:43cce7b453d0 53
oks486 0:43cce7b453d0 54 };
oks486 0:43cce7b453d0 55
oks486 0:43cce7b453d0 56 #endif