更新内容
今回の更新によりSDカードを対象にしてファイルの読み書きができるようになりました。
rspi_mmcドライバはChaNさんが開発したFatFs(ファイルシステム)と合わせて使用してください。
ドライバはFatFsのサンプルソフトを元にコマンド転送管理をポーリングから割り込みへ、データ転送をCPUによる逐次転送からDTCによる転送に修正しています。
また今回の更新に合わせてデバイスドライバのレイヤを追加しました。これについては後日に解説します。
とりあえず使う
とりあえずGR-SAKURAで使用できるようにします。初期状態ではFatFSとドライバは無効化されています。以下の手順で有効化してください。
FatFsを有効にする
FatFsのソースをMakefileのコンパイル対象に追加します。FatFsのMakefileはasp/middleware/Makefile.middlewareにあるので以下のように修正してください。
修正前
MIDDLEDIR = $(SRCDIR)/middleware
#include $(MIDDLEDIR)/fatfs_ff11a/src/Makefile.fatfs
修正後(有効化)
include文のコメントアウト(#)を削除してください。
MIDDLEDIR = $(SRCDIR)/middleware
include $(MIDDLEDIR)/fatfs_ff11a/src/Makefile.fatfs
ドライバーを有効にする
ドライバのソースをコンパイル対象にする
ドライバのソースをコンパイル対象に追加します。asp/driver/rx_gcc/Makefile.driverを以下の手順で有効化してください。
修正前
DRIVER_COBJS =
#include $(DRIVERDIR)/Makefile.RSPI
#include $(DRIVERDIR)/Makefile.mmc_rspi
#include $(DRIVERDIR)/Makefile.mmc_gpio
#include $(DRIVERDIR)/Makefile.DTCa
修正後(有効化)
include文のコメントアウト(#)を削除してください。
DRIVER_COBJS =
include $(DRIVERDIR)/Makefile.RSPI
include $(DRIVERDIR)/Makefile.mmc_rspi
include $(DRIVERDIR)/Makefile.mmc_gpio
include $(DRIVERDIR)/Makefile.DTCa
ドライバとハードウェアを関連づける
ドライバのターゲット依存部はasp/target/sakura_gcc/target_device以下にあります。asp/target/sakura_gcc/target_device/use_device.hを以下のように修正してください。
修正前
#ifndef TARGET_USE_DEVICE_H
#define TARGET_USE_DEVICE_H
//#define USE_RSPI_0
//#define USE_MMC_RSPI_0
//#define USE_MMC_GPIO_0
//#define USE_DTCA_0
#endif
修正後(有効化)
define文のコメントアウト(//)を削除してください。
#ifndef TARGET_USE_DEVICE_H
#define TARGET_USE_DEVICE_H
#define USE_RSPI_0
#define USE_MMC_RSPI_0
#define USE_MMC_GPIO_0
#define USE_DTCA_0
#endif
ユーザ定義パラメータの定義
FatFsの物理デバイス番号とデバイスドライバを関連づけます。アプリケーションのどこかで以下の配列を定義してください。
FatFs用のサンプルでは定義済みです。
const dnode_id pdrv_to_dev[1] = {
DEV_MMC_RSPI0 //drive 1 is mmc_rspi
};
サンプルを動かしてみる
FatFsのサンプルはsample/middleware/fatfsにあります。サンプルのディレクトリで以下のコマンドを実行すればコンパイルができます。
GR-SAKURAのSDカードスロットにカードを挿入して実行してください。
(aspのディレクトリ)/configure -T sakura_gcc -A fatfs_sample
make depend
make