検索
ホーム プロダクツ ダウンロード 販売(注文はココ) サポート
H8MAX
  screen shot
  download
  販売
  セット内容
  H8MAXの概要
  スペック
  組み立て

使用編
  ジャンパー設定
  redboot
  CFのマウント
  DHCPサーバからのブート

開発編
  開発環境
  カーネル構築
  elf2flt
  redboot
  ユーザプログラムの作成
  ファームの書き換え
  よくある質問(FAQ)
  掲示板

資料・その他

  メモリマップ
  ピン配置
  組立マニュアル
  リンク

mailto:h8max@ip-sol.jp



 redboot(使用編)

■redbootを書き込んでおくとカーネルをネットワークから、あるいはRS232C(遅いですが・・・)から転送して起動することができるので開発・実験に便利です。内蔵フラッシュは書き込み寿命がありますのでredbootを一度書き込んでおけば、フラッシュの書き換えをせずに済みます。

◆redbootの書き込み手順
  1. 付属CDに入っているH8WriteTurboをインストールします。\h8writeturbo\setup.exeがインストーラです。
    インストールするとスタートメニュー・デスクトップにショートカットが作成されます。
    詳しい説明はオンラインヘルプをご覧ください。操作する内容としては、CPUに3069Fを選択すること,H8MAXが接続されているCOMポートを設定することぐらいです。
  2. H8MAXとパソコンを接続します。ジャンパー設定の項をご覧になり、書き込みモードにセットします。この状態で電源を入れます。
  3. 付属CDに\pkg\redboot.motが入っていますので、このファイルを書き込んでください。書き込みの方法はこのファイルをH8WriteTurboのダイアログ(ウィンドウ)にドラッグ&ドロップするだけです。自動的に書き込みが開始されます。
  4. 書き込みが終了しましたら、電源を一度切り、ジャンパー設定を動作モードにします。
  5. H8WriteTurboを終了させ(ウィンドウを閉じます)、TeraTermなどのRS232Cターミナルソフトを起動します。起動パラメータは次の通りです。

    • データ長:8bit
    • 通信スピード(ボーレート):38400bps
    • パリティ:なし
    • ストップビット:1bit
    • COMポート:H8MAXが接続されているCOMポート(COM1〜COM4)
      ※TeraTermはCOM1〜COM4までの範囲しか選択できないので注意

  6. H8MAXの電源を入れます。次のようなメッセージが出れば正しく動作しています。
    +DP83902A - eeprom ESA: XX:XX:XX:XX:XX:XX
    Ethernet eth0: MAC address 00:02:cb:01:6d:37
    Can't get BOOTP info for device!
    
    RedBoot(tm) bootstrap and debug environment [ROM]
    Non-certified release, version UNKNOWN - built 18:10:18, Apr  3 2003
    
    Platform: H8MAX (H8/300H)
    Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
    
    RAM: 0x00400000-0x005f4000, 0x00400000-0x005f4000 available
    RedBoot>
    
    ※XX:XX:XX:XX:XX:XXの部分がH8MAXのMACアドレスです。この16進数はH8MAXの製品1つ1つに違う番号がつけられています。
    次のDHCPクライアントの設定で使いますので、この16進数を控えておいてください。
    この画面でhelp[Enter]と入力するとヘルプが出ます。



◆H8MAXをDHCPクライアントとして使う。
  1. DHCPサーバの設定
    H8MAXをDHCPクライアントとして使うためには、DHCPサーバが必要です。動作の確認が取れているのはdhcpdです。
    最新版はこちら[ http://www.isc.org/products/DHCP/ ]から拾えますが、普通のLinuxのディストリビューションなら入っているはずです。
    それ以外のDHCPサーバ(WindowsのDHCPサーバ等)でも動作可能なものがあると思いますが、こちらでは確認が取れておりません。
  2. /etc/dhcpd.confを作成(あるいは修正)します。例えば次のような感じになります。
    subnet 192.168.0.0 netmask 255.255.255.0 {
            range 192.168.0.30 192.168.0.100;
    }
    host h8max {
            hardware ethernet 00:02:cb:01:6c:5a;
            fixed-address 192.168.0.199;
    }
    上記の黄色の部分に前述のredbootを実行したしたときに表示されたMACアドレスを記入します。
    赤字の部分はH8MAXに設定するIPアドレスです。ここでは192.168.0.199を設定しています。
    緑の部分("h8max")はホスト名ですの自由につけてください。
    上記を参考に自分の環境に合わせてMACアドレスやIPアドレスを決定してください。
  3. dhcpdを再起動します。redhat系から次のような操作になります。
    $ su
    # /etc/rc.d/init.d/dhpcd restart # 再起動
  4. もう一度H8MAXを起動してみてください。
    するとDHCPサーバからIPアドレスを取得して次のようなメッセージに変わるはずです。
    +DP83902A - eeprom ESA: 00:02:cb:01:6d:37
    Ethernet eth0: MAC address 00:02:cb:01:6d:37
    IP: 192.168.0.199/255.255.255.0, Gateway: 0.0.0.0
    Default server: 192.168.0.9, DNS server IP: 0.0.0.0
    
    RedBoot(tm) bootstrap and debug environment [ROM]
    Non-certified release, version UNKNOWN - built 18:10:18, Apr  3 2003
    
    Platform: H8MAX (H8/300H)
    Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
    
    RAM: 0x00400000-0x005f4000, 0x00400000-0x005f4000 available
    RedBoot>
    
    
    うまくいかない場合は次の点を確認してください
    • dhcpd.confの書き方が間違っていませんか?
      文の行末にはセミコロンを必ず書きます。ログを参照してうまくconfファイルを読み込んでいるか、起動しているか確認してください。
    • 違うマシン・ルータなどのdhcpdが稼働していないか?
      ほかの機械のdhcpdが応答してしまっているかもしれません。
    • ネットワークケーブルがつながっていますが、ハブへ接続されていますか?
      初歩的ですが忘れていることがあります(汗)

  5. 実はIPアドレスを手動で設定することも可能です。
    RedBoot> ip_address -l 192.168.0.33 -h 192.168.0.9
    IP: 192.168.0.33/255.255.255.0, Gateway: 0.0.0.0
    Default server: 192.168.0.9, DNS server IP: 0.0.0.0
    RedBoot>
    
    上記のように入力すればローカルIPとサーバIPを設定できます。

◆tftpの設定
 カーネルを転送するためにはtftpサーバが必要です。通常ディストリビューションに入っているin.tftpdを使います。
 通常tftpdはtcpwrapperから起動するようになっていますので、xinetdの設定が必要です。
/etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
NFSの設定を次のような感じに入れます。H8MAXが192.168.0.123の場合
$ cat /etc/exports
/tftpboot/192.168.0.123 192.168.0.123(rw,no_root_squash)
xinetdを再起動します。
$ su
# /etc/rc.d/init.d/xinetd restart
上記ファイルに設定したディレクトリ(/tftpboot)にカーネルを置きます。linux.binなど

H8MAXを起動して次のように入力します。
+DP83902A - eeprom ESA: XX:XX:XX:XX:XX:XX
Ethernet eth0: MAC address XX:XX:XX:XX:XX:XX
IP: 192.168.0.199/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.0.9, DNS server IP: 0.0.0.0
RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 18:10:18, Apr  3 2003
Platform: H8MAX (H8/300H)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
RAM: 0x00400000-0x005f4000, 0x00400000-0x005f4000 available
RedBoot> load -r -b 0x400000 h8max-20030802.bin
Raw file loaded 0x00400000-0x00516ef7, assumed entry at 0x00400000
ここではカーネルのファイル名をh8max-20030802.binと仮定しています。お手元の環境のファイルを指定してください。
0x400000は物理アドレスです。この0x400000からDRAMの空間になっています。

ENTERを押すとネットワークのTX,RXが点滅し、ファイルを転送しているのがわかると思います。
数秒で転送が終わり、プロンプトに戻ります。

あとは実行するだけです。
RedBoot> exec -c console=ttySC1,38400
Now booting linux kernel:
 Entry Address 0x00400000
 Cmdline : console=ttySC1,38400
Linux version 2.4.21-uc0 (ochiai@office) (gcc バージョン 3.3) #10 2003年 7月 31日 木曜日 23:29:48 JST
uClinux H8/300H
Target Hardware: H8MAX
<以下省略>
-cの後はカーネルのコマンドラインです。上記ではコンソールをttySC1、つまりH8のRXD1,TXD1から出るように設定しているものです。これがないと次の起動メッセージがRXD0,TXD0から出るのでターミナルに何も出なくなります。
複数のパラメータがある場合は
-c "console=ttySC1,38400 root=...."
のように"で囲ってください。

 redboot(開発編)

■redbootはecosの1つのパッケージです。ecosからredbootを構築します。
詳しくはhttp://sourceforge.jp/projects/ecos-h8/document/aki3068net.html/ja/2/aki3068net.htmlを参考に構築します。

あらかじめクロス開発ツールはインストールしておいてください。
ダウンロードセンターからecosをダウンロードします。
$ pwd
/home/ochiai/redboot
$ wget http://ip-sol.jp/h8max/down/ecos-2.0.i386linux.tar.bz2
$ tar jxvf ecos-2.0.i386linux.tar.bz2
構築には環境の変数変数の設定が必要です。~/.bashrcなどに次の項目を追加してください。
  • export PATH=$PATH:/home/ochiai/redboot/ecos-2.0/tools/bin
  • export ECOS_REPOSITOTY=/home/ochiai/redboot/ecos-2.0/packages
青部分はご自分のecosを解凍したディレクトリ(前記 pwdを参照)を指定します。

$ ecosconfig new h8max redboot
U CYGSEM_HAL_ROM_MONITOR, new inferred value 1
$ ecosconfig add CYGPKG_IO_ETH_DRIVERS
$ ecosconfig add CYGPKG_DEVS_ETH_NS_DP83902A
$ ecosconfig tree
                  
あとはmakeします。install/binにelfファイルができます。これをMOTファイルに変換してH8MAX内蔵フラッシュに書き込みます。
$ make
$ cd install/bin
$ ll
合計 764
-rwxrwxr-x    1 ochiai   ochiai     777755  8月 23 14:11 redboot.elf
$ h8300-elf-objcopy -O srec redboot.elf redboot.elf.mot