6)binの書き込み

いよいよESP(Eterna Serial Programmer software)を使用して、フラッシュメモリーに書き込んでみよう。
ESPを解凍したら、ESP.exeのあるホルダーを作業フォルダーに設定したコマンドプロンプトのショートカットを作っておくと便利である。


コマンドプロンプトからespと打つとヘルプが表示されるはずだ。
評価キットかDC9010Bとモジュールの接続に問題があるかも知れないので、まずはフラッシュの内容を読んでみよう。

esp -r bup5902_1.bin

読んだ内容を格納するファイル名を指定する必要があるので、ここでは bup5902_1.bin としている。


上図のように err = 0 で終わっていれば接続OKだ。

書き込みは、変更が必要な部分だけ書き換える場合と、全体を書き換える場合がある。
「コンパイルの準備」で書いたように、LTP590xモジュールには新旧がある。
旧モジュールにはそれぞれの品種(IPMA、PRA、IPRB、IPRC)にそれぞれのデフォルトイメージが書かれていたようだ。
新モジュールになってからしばらくは、それまで通りに品種別であったが、現在のハードウェアは LTP590xIPC-IPMA に統一され、ユーザー側でお好みのイメージを書くようになった。

品種別のジュールを購入して初めて書き込みを行う場合は、上記のように書かれているであろうデフォルトイメージを読んでバックアップを取っておくことをおすすめしたい。
購入時の状態に戻したいと思うことがあるためだ。

フラッシュ全体を書き換えるには、全消去 -> FUSE書き込み -> パーティション書き込み -> メイン書き込み -> ローダー書き込み の順に行う。
ESPコマンドを手で打つ場合は以下のようになる

esp -E
esp -P FT-LTP5902-IPMA-M4-115K-680-0241-0003REV1.bin 0
esp -P mote_part_r52074.bin 800
esp -P ocfdk_00_hello.bin 1000
esp -P loader_1_0_5_4.bin 77800

上記の例のモジュールハードウェアはLTP5902IPC-IPMA1D0#PBFである。
FT-LTP5902-IPMA-M4-115K-680-0241-0003REV1.bin はFuse Tableのファイル名である。
mote_part_r52074.bin はモート用のPartition tableのファイル名である。
ocfdk_00_hello.bin はビルドにより生成されたメインバイナリのファイル名である。
loader_1_0_5_4.bin はLoaderのファイル名である。

尚、これら4つのファイルは、ESP.exeと同じホルダーに入れておこう。
ESPコマンドをいちいち手で打つのもめんどうなので、batファイルにしておくと便利である。
テキストエディタで上記の5行を貼り付けて、hello_p.batといった名前で保存し、ESP.exeと同じホルダーに入れておこう。
以後は hello_p と打つだけでOKだ。

各ESPコマンドでエラーが出ていなければ、フラッシュ書き込み終了である。

それでは、メインだけ書き換えるにはどうすればよいだろう。
メインだけを消去するには

esp -e 1000 237

となるはずだ。
237はページ数で、1ページは800hであり、メインの先頭からローダーの手前までを指定すればよいので

( 77800h - 1000h ) / 800h = EDh = 237(10進)

となる。
メインの書き込みは上記と同じで

esp -P ocfdk_00_hello.bin 1000

となる。

コメント

このブログの人気の投稿

13)こんどはI2Cで

12)非同期パルス

2)OnChipSDKとは