RedBootの作成(メモリ増設)

この記事は古いです。参考の為に残してます。

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)

You may also like...

コメントを残す

メールアドレスが公開されることはありません。


表示されている文字を入力してください! それ以外は任意です。