この記事は古いです。参考の為に残してます。
uClinuxのカーネルを作成して、AE-3069ボードに転送してみたところ、
一応動いているようですが、コマンドで
”cd”を使ってディレクトリを移動しようとすると、コマンドが・・・と言われたり、
”ls”を使っても正常に表示されない事がありました。
ハッキリとした原因はわからないのですが、DRAMの容量が少ないと
不安定になるとの書込みを見つけたので、とりあえず、メモリを増設してみました。
- AE-3069ボードの改造
最初に基盤に載っていたDRAMはHM5117805だったので、同じものを
秋月電子で購入してきました。(1個300円ぐらいだったかな。) - 施工
ネット上の書込みと、3069のデータシートみると、既存のDRAMの上に
新しいDRAMを亀みたいに乗せて、半田付けすればよさそうです。
ただし、7ピン目だけは足を折らないように、まっすぐにして、
10Kの抵抗で5Vにプルアップし、3069の88ピン目に適当な線で配線しました。
(88ピン目は半田付けが面倒なので実際にはCN1の21番に配線してます。) - 開発環境の構築
RedBootを作成するための準備を行います。
基本的な環境はRedbootの設定と同じです。 - PATHの確認
# export PATH=$PATH:/src/ecos-2.0/tools/bin
# export ECOS_REPOSITORY=/src/ecos-2.0/packages
# export H8PREFIX=/usr/local/h8
# export PATH=${PATH}:${H8PREFIX}/bin - 設定値の変更
DRAMの容量を倍にする為に少々設定を変更します。 - platform.incの変更
ecos-2.0を展開したフォルダの階層下にあるplatform.incを変更します。
(ecos-2.0/packages/hal/h8300/aki3068net/current/include/platform.inc)
0x3cを0x58 もしくは0x5c にします。
私の場合はファストページではないようなので0x58みたいです。INIT_REGS_DATA(CYGARC_DRCRA,0x58) - mlt_h8300_h8300h_aki3068net_rom.hの変更
ecos-2.0を展開したフォルダの階層下にあるmlt_h8300_h8300h_aki3068net_rom.hを変更します。
(ecos-2.0/packages/hal/h8300/aki3068net/current/include/pkgconf/mlt_h8300_h8300h_aki3068net_rom.h)#define CYGMEM_REGION_ram_SIZE (0x200000)
#define CYGMEM_REGION_ram_SIZE (0x400000-0xC000)
0x200000を0x400000に変更します。
#define CYGMEM_REGION_ram_SIZE (0x400000)
#define CYGMEM_REGION_ram_SIZE (0x400000-0xC000) - mlt_h8300_h8300h_aki3068net_rom.ldiの変更
ecos-2.0を展開したフォルダの階層下にあるmlt_h8300_h8300h_aki3068net_rom.ldiを変更します。
(ecos-2.0/packages/hal/h8300/aki3068net/current/include/pkgconf/mlt_h8300_h8300h_aki3068net_rom.ldi)
#define WORK 0x5f4000を 0x7f4000に変更します。
#define WORK 0x7f4000 - RedBootの構築
# ecosconfig new aki3068net redboot
U CYGSEM_HAL_ROM_MONITOR, new inferred value 1
# ecosconfig add CYGPKG_IO_ETH_DRIVERS
# ecosconfig add CYGPKG_DEVS_ETH_NS_DP83902A
# ecosconfig add CYGPKG_CYGMON
# ls
ecos.ecc
# - ecos.eccを編集
ecos.eccを編集します。お手本をまねして、
スタックは数値(4096)を調整
cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {???????? user_value 1024
};
コマンドヒストリは数値(16)を調整
cdl_option CYGNUM_REDBOOT_CMD_LINE_EDITING {
user_value 2
}; - IPアドレス設定
cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
user_value 1 “192, 168, 183, 145”
}; - シリアル転送速度を38400bpsに設定
- cdl_option CYGNUM_HAL_H8300_SCI_BAUD_RATE {
user_value 38400
} - DHCPを無効に
cdl_option CYGSEM_REDBOOT_DEFAULT_NO_BOOTP {
user_value 1
}; - 動作クロックの調整
私のAKI3069ボードはクリスタルを25MHzに換えているので以下も変更しました。cdl_option CYGHWR_HAL_H8300_CPG_INPUT {
user_value 25000000
}; - DRAMメモリの調整
cdl_option CYGDAT_REDBOOT_H8300_LINUX_COMMAND_START{
user_value 0x007FFE00
};
そして、
# ecosconfig check
# ecosconfig tree
# make | tee make.outmake
を実行します。エラーがでず終了したら
# cd install/bin
# h8300-elf-objcopy -O srec redboot.elf redboot.mot - 一応終了
FTPでWinPCに作成した”.mot”ファイルを転送して(まだ、VinelからRS232C経由
で書き込む環境を整えていないので)H8Writeで書き込みます
(モードの切替えを忘れずに!)。 - とりあえずハイパーターミナルをスピード38400にして電源ON!!!おお~~~~
ちゃんと動いた~~~~~
かんど~~
動作は一切保証しませんが、よろしければ…………
#ref(redboot4m20.mot,left)
#ref(redboot4m25.mot,left)
頂いたコメント