IJFW - IchigoJamのBASICプログラムをメモリカード(MMCまたは互換カード)に保存したり読み出したりできるプログラム。メモリカードにファームウェアのファイルを置くだけで、電源ON時に自動的に書き換える機能も搭載(一応こちらがメイン)。LPC1114FN28専用。
参考URL http://www.cyberchabudai.org/index.php/entry?tag=IJFW
FatfsIJFW/FatfsIJFW.h@0:43cce7b453d0, 2016-04-28 (annotated)
- Committer:
- oks486
- Date:
- Thu Apr 28 11:23:24 2016 +0000
- Revision:
- 0:43cce7b453d0
first commit
Who changed what in which revision?
User | Revision | Line number | New 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 |