8. メモリが足りない
MP3 Player としてのソフトウエアを作って行くうちに、 だんだんとメモリ不足に悩まされるようになりました。 2Mバイトも(「も」ですよ)あるRAMですが、 uClinux Kernelだけでも1M以上食っていて、 ちょっとプログラムが大きくなるとすぐにメモリが取れなくなってしまいます。 uClinuxはMMUなしのアーキテクチャ向けですから、 HDDを積んでいてもswapはできません。 Nishimotoさん のサイトでDRAMを亀の子に積んだ例を見て、 なるほどこれなら簡単にできそうと思いやってみました。
重ねて積むので、もとのDRAMと同じものを調達しなければいけませんが、 ちょっと古い品種のようで探すのに苦労しました。 幸いにも 若松通商さんみつかって、 無事にメモリの拡張ができました。 ハンダ付けするとき、コネクタがじゃまでコテを当てにくかったので、 最初からそのつもりならコネクタを付ける前に作業する方が楽です。
《 ← 前へ 》 《 次へ → 》

秋月3069ネットボードのDRAM拡張
1. 回路
追加するDRAMのRASピンだけを浮かせて、 残りの全てのピンはボード上に実装されているDRAMにぴったり重なるようにリードを伸ばして形を整えハンダ付けします。 RASピンは、H8のCS3に接続し、一応pull-up(10k)も付けておきます。 回路はこれだけです。

亀の子なのでdata busは D[15:8]だけの接続となって、 H8 の Area 2、Area 3 ともに 8 bit Address Space に設定することになります。 DRAMを2つ付けるなら、本当は一つをD[15:8]に、 もう一つをD[7:0]に接続して16 bit Address Space にして使う方が、 バス効率が上がるし貴重なIRQ1ピンを潰さなくて嬉しいのですが (H8/3069ハードウエアマニュアルの x8ビット構成16MビットDRAMの接続例)、 AKI 3069ボードでそれをやろうとすると元々実装してあるDRAMのAddress Busの接続を全て1bitずらしてやらないといけないのでちょっと面倒です。 H8 uClinux を快適に使うには2M以上欲しいところなので、 4M載る Version 2 ボードが出ないかなーと思います。

5117800相当品(MSM5117800D)の データシート です。

2. Redboot、uClinux の変更
Nishimotoさん のサイトの手順どおりです。
  1. eCos のソースツリーで、 packages/hal/h8300/aki3068net/current/include/platform.inc の DRCRA の設定値を INIT_REGS_DATA(CYGARC_DRCRA,0x58) に変更して、Redboot作成のための ecosconfig new をやり直します。
  2. ecos.ecc の CYGDAT_REDBOOT_H8300_LINUX_COMMAND_START の値を 0x005FFE00 から 0x007FFE00 に変更します。 redbootのイメージを作り直して H8 に書き込みます。
  3. uClinux で、linux-2.4.x/arch/h8300/platform/h8300h/aki3068net/ram.ld の ram: の LENGTH を 0x600000-0x400000 から 0x800000-0x400000 に、 eram: の ORIGIN を 0x800000 に修正して、kernel を構築しなおします。
《 ← 前へ 》 《 次へ → 》