第5章 フラッシュメモリの書き換え方法

フラッシュメモリの内容を書き換えることで、Armadilloの機能を変更することができます。この章ではフラッシュメモリの書き換え方法を説明します。

[警告]

何らかの原因により「書き換えイメージの転送」に失敗した場合、Armadilloが正常に起動しなくなる場合があります。書き換えの際は次の点に注意してください。

  • Armadilloの電源を切らない

  • Armadilloと開発用PCを接続しているシリアルケーブルとLANケーブルを外さない

5.1. ダウンローダのインストール

作業用PCにダウンローダをインストールします。

ダウンローダの種類には、表 5.1. 「ダウンローダ一覧」のようなものがあります。

表 5.1. ダウンローダ一覧

ダウンローダOSタイプ説明
hermit-atLinuxLinux用のCUIアプリケーションです。
shoehorn-atLinuxLinux用のCUIアプリケーションです。
hermit-at-winWindowsWindows用のGUIアプリケーションです。

[ティップ]

ATDE(Atmark Techno Development Environment)を利用する場合、ダウンローダパッケージはすでにインストールされているので、インストールする必要はありません。

5.1.1. 作業用PCがLinuxの場合

付属CDのdownloader/debディレクトリよりパッケージファイルを用意し、インストールします。必ずrootユーザで行ってください。

[PC ~]# dpkg --install hermit-at_[version]_i386.deb
[PC ~]# dpkg --install shoehorn-at_[version]_i386.deb

図 5.1. ダウンローダのインストール(Linux)


5.1.2. 作業用PCがWindowsの場合

付属CDのdownloader/win32/hermit-at-win_[version].zipを任意のフォルダに展開します。

5.2. フラッシュメモリの書き込み領域について

フラッシュメモリの書き込み先頭アドレスは、領域(リージョン)名で指定することができます。書き込み領域毎に指定するイメージファイルは、表 5.2. 「リージョン名と対応するイメージファイル 」のようになります。

表 5.2. リージョン名と対応するイメージファイル [3]

製品領域名ファイル名
Armadillo-210bootloaderloader-armadillo2x0-[version].bin
kernellinux-a210-[version].bin.gz
userland

romfs-a210-recover-[version].img.gz

romfs-a210-base-[version].img.gz

Armadillo-220/230/240bootloaderloader-armadillo2x0-eth-[version].bin
kernellinux-a2x0-[version].bin.gz
userland

romfs-a2x0-recover-[version].img.gz

romfs-a2x0-base-[version].img.gz

Armadillo-9bootloaderloader-armadillo9-[version].bin
kernellinux-[version].bin.gz
userlandromfs-[version].img.gz
Armadillo-300iplipl-a300.bin(※書き換え不可)
bootloaderloader-armadillo-3x0-[version].bin
kernellinux-a300-[version].bin.gz
userlandromfs-a300-[version].img.gz
Armadillo-500bootloaderloader-armadillo5x0-[version].bin
kernellinux-a500-[version].bin.gz
userlandromfs-a500-[version].img.gz
Armadillo-500 FXbootloaderloader-armadillo5x0-fx-[version].bin
kernellinux-a500-fx-[version].bin.gz
userlandromfs-a500-fx-[version].img.gz

[3] 「x」にはバージョン番号の任意の数値が入ります。


[ティップ]

一部製品のユーザーランドには、RecoverとBaseという2種類のイメージファイルが用意されています。Recoverイメージは、出荷状態でオンボードフラッシュメモリに書き込まれていて、各製品の特徴や性能を利用するアプリケーションが含まれています。Baseイメージは、開発のベースとなるように、基本的なアプリケーションやツールのみが含まれています。

5.3. Hermit-Atダウンローダを使用してフラッシュメモリを書き換える

ここでは、Hermit-Atダウンローダを使用してフラッシュメモリを書き換える手順について説明します。項5.1. 「ダウンローダのインストール」でインストールしたHermit-Atダウンローダを使用します。これは、Armadilloのブートローダーと協調動作を行い、作業用PCからArmadilloのフラッシュメモリを書き換えることができます。

5.3.1. 準備

項2.3. 「ジャンパピンの設定について」を参照し、Hermit-Atを起動してください。

Armadilloと接続している作業用PCのシリアルインターフェースが他のアプリケーションで使用されていないことを確認します。使用されている場合は、該当アプリケーションを終了するなどしてシリアルインターフェースを開放してください。

5.3.2. 作業用PCがLinuxの場合

図 5.2. 「ダウンロードコマンド」のようにコマンドを実行します。

downloadはhermitのサブコマンドの一つです。--input-fileで指定されたファイルをターゲットボードに書き込む時に使用します。--regionは書き込み対象の領域を指定するオプションです。下記の例では、「kernel領域にlinux.bin.gzを書き込む」という命令になります。

[PC ~]$ hermit download --input-file linux.bin.gz --region kernel

図 5.2. ダウンロードコマンド


シリアルインターフェースがttyS0以外の場合は、図 5.3. 「ダウンロードコマンド(ポート指定) 」のように--portオプションを使用してポートを指定してください。

[PC ~]$ hermit download --input-file linux.bin.gz --region kernel --port ttyS1

図 5.3. ダウンロードコマンド(ポート指定) [4]


bootloaderリージョンは、誤って書き換えることがないように簡易プロテクトされています。書き換える場合は、図 5.4. 「ダウンロードコマンド(アンプロテクト)[4]」のように--force-lockedオプションを使用して、プロテクトの解除をしてください。

[PC ~]$ hermit download --input-file loader-armadillo5x0-fx.bin --region bootloader --force-locked

図 5.4. ダウンロードコマンド(アンプロテクト)[4]


[警告]

bootloaderリージョンに誤ったイメージを書き込んでしまった場合、オンボードフラッシュメモリからの起動ができなくなります。この場合は項5.5. 「2ndブートローダを出荷状態に戻す」を参照してブートローダーを復旧してください。

5.3.3. 作業用PCがWindowsの場合

hermit-at-win.exeを実行します。図 5.5. 「Hermit-At:Downloadウィンドウ」が表示されます。

Hermit-At:Downloadウィンドウ

図 5.5. Hermit-At:Downloadウィンドウ


Armadilloと接続されているシリアルインターフェースを「Serial Port」に指定してください。ドロップダウンリストに表示されない場合は、直接ポートを入力してください。

Imageには書き込むファイルを指定してください。Regionには書き込み対象のリージョンを指定してください。allやbootloaderリージョンを指定する場合は、Force Lockedをチェックしてください。

すべて設定してから実行ボタンをクリックします。図 5.6. 「Hermit-At:downloadダイアログ」が表示されます。

Hermit-At:downloadダイアログ

図 5.6. Hermit-At:downloadダイアログ


ダウンロードの設定と進捗状況が表示されます。ダウンロードが完了するとダイアログはクローズされます。

5.4. netflashを使用してフラッシュメモリを書き換える

Linuxアプリケーションのnetflashを使用してフラッシュメモリを書き換えることができます。netflashは、所属するネットワークにあるHTTPサーバーやFTPサーバーが公開しているファイルをダウンロードしてフラッシュメモリを書き換えることができます。

Armadilloにログインし、図 5.7. 「netflashコマンド例」のようにコマンドを実行します。

[armadillo ~]# netflash -k -n -u -r /dev/flash/kernel [URL]

図 5.7. netflashコマンド例


オプションの"-r [デバイスファイル名]"で書き込み対象のリージョンを指定しています。表 5.3. 「リージョンとデバイスファイルの対応」を参照してください。その他のオプションについては、netflash -hで詳細を確認する事ができます。

表 5.3. リージョンとデバイスファイルの対応

リージョンデバイスファイル
カーネル/dev/flash/kernel
ユーザランド/dev/flash/userland

5.5. 2ndブートローダを出荷状態に戻す

2ndブートローダ領域にhermitコマンドプロンプトが表示されないイメージや、不正なイメージを書き込んでしまい、2ndブートローダを制御できなくなった場合の対処方法について説明します。

Armadillo-300の1stブートローダは、Shoehorn-At Hostと協調動作をすることで、Armadillo-300のRAM上に直接プログラムを書き込むことができます。この機能を利用して2ndブートローダを復旧させることが可能です。

[警告]

1stブートローダが破壊されている場合、本手段では復旧することはできません。破壊されている場合は、JTAGを使用し直接フラッシュメモリへ1st/2ndブートローダを書き込む必要があります。

5.5.1. 作業用PCがLinuxの場合

  1. Armadillo-300の電源が切断されていることを確認し、作業用PCとArmadillo-300をシリアルケーブルで接続します。

  2. Armadillo-300のJP1を「2-3」に設定します。

  3. 作業用PCでshoehornコマンドを以下の例[5] のように実行します。

    [PC ~]$ shoehorn --boot --terminal --initrd /dev/null
     --kernel /usr/lib/hermit/loader-armadillo3x0-boot.bin 
     --loader /usr/lib/shoehorn/shoehorn-armadillo3x0.bin
     --initfile /usr/lib/shoehorn/shoehorn-armadillo3x0.init
     --postfile /usr/lib/shoehorn/shoehorn-armadillo3x0.post
    
    ※ シリアルインターフェースが「ttyS0」以外の場合は、オプション「--port "ポート名"」を指定してください

    図 5.8. shoehornコマンド例


  4. Armadillo-300の電源を投入します。

    [ティップ]

    電源を投入した場合、起動ログの表示が開始されます。表示が開始されない場合は、Armadillo-300の電源を切断し、シリアルケーブルの接続やジャンパ設定を確認してください。

  5. "hermit>"と表示されたら、「Ctrl + C」キーを入力してください。

以上で作業用PCからhermitを使用してArmadillo-300へ2ndブートローダをダウンロードする準備が整います。ジャンパの設定変更や電源の切断をしないでCtrl-Cを押してShoehornを終了してから、項6.3.2. 「ビルド」を参照して書き換えを行ってください。

5.5.2. 作業用PCがWindowsの場合

  1. Armadillo-300の電源が切断されていることを確認し、作業用PCとArmadillo-300をシリアルケーブルで接続します。

  2. Armadillo-300のJP1を「2-3」に設定します。

  3. 項5.1. 「ダウンローダのインストール」で展開したhermit.exeを実行します。

  4. 「Shoehorn」ボタンをクリックすると図 5.9. 「Shoehornモード時の画面」が表示されます。

    Shoehornモード時の画面

    図 5.9. Shoehornモード時の画面


  5. "Target"にarmadillo3x0を指定します。

  6. 「実行」ボタンをクリックすると図 5.10. 「shoehornダイアログ」が表示されます。

    shoehornダイアログ

    図 5.10. shoehornダイアログ


  7. Armadillo-300の電源を投入します。

    [ティップ]

    電源を投入した場合、起動ログの表示が開始されます。表示が開始されない場合は、Armadillo-300の電源を切断し、シリアルケーブルの接続やジャンパ設定を確認してください。

  8. shoehornダイアログがクローズするのを待ちます。

以上で作業用PCからhermitを使用してArmadillo-300へ2ndブートローダをダウンロードする準備が整います。ジャンパの設定変更や電源の切断をしないで項5.3. 「Hermit-Atダウンローダを使用してフラッシュメモリを書き換える」を参照して書き換えを行ってください。



[4] コマンドは1 行で入力します。

[5] 紙面の都合上、折り返して表現しています。