SQ出版 Interface誌 Webサイト「付属SH-2A基板特設ページ」で SD/MMCカード対応ブート・ローダが先行公開されました。
私、安直に、「これは、良い、今まで、外付けシリアルフラッシュで64(32)KByteオーバープログラムに対応していたのが、SDカードで置き換えられる。」と思い、早速試してみました。
結論から言えば、現時点でまだ、この素晴らしい、ブート方式の検証は出来ていません。失敗事例とし今回、投稿します。ご容赦願います。
[概要]
1.SD/MMCカード対応ブート・ローダ ”ff_loader” 改造ポイント
1)SDカードの端子変更
CS: PG20(33)=> PG16(24)
WP: PJ3(32) => PC6(27)
CD: PJ1(31) => PC7(28)
2)ff_loader.binの(ブート・ローダー)の扱い
外付けシリアルフラッシュROMの先頭(0x00000000)に書き込む。
=>外付けシリアルフラッシュROMの32KB以降(0x00008000)に書き込む。(訂正7/25)
2.稼動させたい、プログラム。
過去に、シリアルフラッシュROMに書き込んだプログラム。「付属SH-2A基板 2Chオシロスコープ(弊ブログ)」を、PCでSDカードに、”app.bin”というファイル名で書き込む。
3.試行
失敗
4.試行後
既存のブート・ローダーおよびHEWモニターが潰れたため、付属基盤は不能に。
5.リカバリー
「SH-2A基板用HEWモニタプログラムを外付けシリアル・フラッシュROMに書き込む。(弊ブログ)」で、元のブート・ローダーおよびHEWモニターを書き込み、復旧。
以降、今回の失敗の詳細を述べます。
1.SD/MMCカード対応ブート・ローダ ”ff_loader” 改造
1)SDカードの端子変更
①CS端子
CN3 33はSPI Ch1のMISOで使いたいので、CN3 24 (PG16)に変更
・ソース:mmc.c のCS制御を
#define CS_LOW() PORT.PGDR1.BIT.PG16DR = 0 /* MMC CS = L */
#define CS_HIGH() PORT.PGDR1.BIT.PG16DR = 1 /* MMC CS = H */
に変更。
・ソース:mmc.c のpower_on()内のCS 設定を
PORT.PGIOR1.WORD |= 0x0001; PORT.PGCR4.WORD &= 0xFFF0; /* MMC_CS */
に変更。(7/23追記)
②WP端子、CD端子
CN3 31,32は、LCD(モノクログラフィック)で使用のため、CN3 27,28 (PC6,PC7)に変更
・ソース:mmc.c のWP,CDのGPIOポート設定を
#define SOCKPORT PORT.PCPR0.WORD /* ソケット状態入力(PC) */
#define SOCKWP 0x0040 /* ライトプロテクト接点 (PC6) */
#define SOCKINS 0x0080 /* カード検出接点 (PC7) */
に変更
・ソース:mmc.c のpower_on()内のWP/CD 設定を
if (_USE_CD) {PORT.PCIOR0.WORD &= 0xFF7F; PORT.PCCR0.WORD &= 0x0FFF;} /* MMC_CD */
if (_USE_WP) {PORT.PCIOR0.WORD &= 0xFFBF; PORT.PCCR0.WORD &= 0xF0FF;} /* MMC_WP */
に変更。(7/23追記)
2)ff_loader.binの(ブート・ローダー)の扱い
現在、シリアルフラッシュROM(SPI Ch0)に、プログラムを書き込むプログラムを改造し、シリアルフラッシュROMの先頭(0x00000000)にブート・ローダーのみを書き込みプログラムを作成し、改造後の”ff_loader.bin”を書き込みました。
=>このブート・ローダーは、ユーザープログラムとして扱うようです。ユーザー・プログラムがさらに、別のユーザープログラムをロードすることで、SDカード上のプログラムを実行するようです。したがって、プログラム書き込み位置は、従来のユーザープログラムと同じ、シリアルフラッシュROMの32KB(0x00008000)以降になります。(7/25追記)
3.試行~5.リカバリー 上記のとおり、
6.疑問点
SH7262のローダープログラムのサイズは8KBだった記憶があります。今回のブート・ローダーのプログラムサイズは12KB、少々疑問を持っています。=>この疑問無効(7/25追記)
※今回の失敗で、SDカードコネクタ周りの配線チェックを予定しています。チェックの方法として、以前試していた、SDカード関連のプログラムを元のSPI Ch0に戻し再度動作確認を行いたいと思います。
SDカードからのブートが実現できれば、結構快適に、付属SH-2A基板のプログラム開発が行えると期待してます。
7.状況
7/23 I誌7月号第3章 「メモリカードとFATファイル・システムの実装」のプログラムの動作を実現し、SPI Ch0によるSDカードコネクタ周りの回路構成(配線等)を確認しました。
7/25 I誌9月号を読みながら、GCC版、HEW版いずれも試すが、SDカードプログラムの稼動は確認出来ず。
2010年7月21日水曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿