Propeller始めました(18) ポータブルゲーム機の実装 3
プロペラを使ったポータブルゲーム機 LameStationにmicroSDカードを搭載しようと挑戦中です。
オリジナルのLameStationはプレイするゲームを変更するたびにパソコンに接続して
開発環境でコンパイルして書き込む必要があり、少々使い勝手が悪いです。
何とかmicroSDカード上の任意のイメージファイルを選択してブートする方法は無いかと
試行錯誤中です。
取りあえず、SDカードは認識してファイルのアクセスは出来るようになりました。
秋月電子のマイクロSDカードスロットDIP化キットを使って下記のような感じの回路を
ブレッドボード上に実装して接続しました。

回路図はparallax社のホームページで公開している「SD Card Data Storage」を
参考にしました。
SDカードからのブートについては、microSDカードリーダ搭載の純正ボードの
"Propeller Board of Education "にて実現可能な記事を見つけました。
記事: Make One Program Launch Another
流用で出来そうです。何とかなりそうです。
プロペラってこんなこと出来るんですね。
話変わって、"LameStation"の"Lame"ってどういう意味かを調べたら、"不自由な"
っていう意味合いなのですが、確かに不自由と言えば不自由か..
2016/02/02 追記
SDカードからのブートが出来ました。プログラムはライブラリの関数を利用することで
簡単に実現出来ました。プログラムは次のような感じです。
{{
LameStation SDカードローダー
}}
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
'SDカード PIN接続
DO = 16 'EX0(P16)
CLK = 17 'EX1(P17)
DI = 18 'EX2(P18)
CS = 19 'EX3(P19)
OBJ
sd : "SD-MMC_FATEngine"
PUB go
Run(String("TANKBA~1.EEP"))
PUB Run(filePathName) : statusVal | statusStr
ifnot sd.partitionMounted
Mount(0)
statusStr := \ sd.bootPartition(filePathName)
statusVal := sd.partitionError
PRI Mount(partition) : statusVal | statusStr
ifnot sd.CogStatus
Start
statusStr := \ sd.mountPartition(partition)
statusVal := sd.partitionError
PRI Start : okay | statusStr
ifnot sd.CogStatus
okay := sd.FATEngineStart(DO, CLK, DI, CS, -1, -1, -1, -1, -1)
ライブラリではロングファイル名に対応していないため、8.3形式のファイル名で
ファイルを指定する必要があります。
8.3形式のファイル名はWindowsのコマンドプロンプトで"dir /X"で確認できます。
下記の写真はSDカードから起動した様子です。

SDカードは容量4Gバイト FAT16です。
起動するプログラムはSDカード上にEEPROMイメージの形式のファイルとして
"TankBattle.eeprom"というファイル名で書きこんでいます。
8.3形式のファイル名だと"TANKBA~1.EEP"となります。
EEPROMイメージの形式の作成は、開発環境にて出来ます。
ただし、私が使っている PropellerIDE で作成したイメージではブート出来ませんでした。
Parallax社純正の開発環境 PropellerToolで作成すると正常起動しました。
一々別の開発環境で作成するのも面倒なので、openspinというコマンドラインで
利用するコンパイラを利用することで作成することにしました。バッチコマンドを作成して、
そのコマンドにソースのアイコンをドロップすることで簡単に作成できるようにしました。
バッチファイル makerom.bat
中身
openspin %1 -e -L "C:\Program Files (x86)\PropellerIDE\library\library" -L E:\Propeller\lamestation\lamestation-sdk-rc2-0.4.0
« aitendoのATTiny ISPシールドきっと [K-TINY-SLD]を購入 | トップページ | Propeller始めました(19) ポータブルゲーム機の実装 4 »
「Propeller」カテゴリの記事
- プロペラ2の評価ボード(2019.03.12)
- プロペラでVT100端末の実装(2018.07.25)
- Propeller始めました(22) ポータブルゲーム機の実装 7(2016.02.19)
- Propeller始めました(21) ポータブルゲーム機の実装 6(2016.02.17)
- SPI接続のカラー液晶モジュールの動作確認(2016.02.14)
« aitendoのATTiny ISPシールドきっと [K-TINY-SLD]を購入 | トップページ | Propeller始めました(19) ポータブルゲーム機の実装 4 »

コメント