はじめに anchor.png

LPC82xに対応した弊社オリジナルブートローダです。
マイコンに備わったUSARTを経由してホストからマイコンボードのフラッシュROMへユーザプログラムを転送及び書き込んだり、書き込まれたユーザプログラムを実行するといった機能を持ちます。
GCC Developer Liteにてソースプログラムからコンパイルでき、ユーザ自身による改造も可能です。
ファイルの送受信にはXMODM-1Kプロトコルを使用します。

Page Top

基本仕様 anchor.png

Page Top

コンパイル方法 anchor.png

弊社提供のGCC Developer Lite最新版のインストールコンポーネントとして「LPC82xでのみ使用」、もしくは「フルインストール」が選択されている必要があります。

ソースをダウンロードし適宜解凍し、GCC Developer Liteでソースを開き、コンパイルオプションにて「LPC824 (ROM)」の設定リストを選択し、さらに隣家スクリプトファイルを「lpc824_rom_tiny.x」に変更してコンパイルします。コンパイル後に生成される.binファイルをISPやSWD等を介してフラッシュROMに書き込んだら準備完了です。

Page Top

ソース及びコンパイル済みバイナリのダウンロード anchor.png

[Upload]

バージョン: 1.0
公開日: 2015/?/? 更新内容:一般向けリリース

Page Top

メモリマップ anchor.png

本ブートローダはフラッシュROM上で動作するプログラムであり、一般のプログラムと何ら相違はありません。そのため、ブートローダ自身のサイズが大きいと、ユーザが使用できる領域が圧迫されてしまいます。
現在リリースしているバージョンでは占有フラッシュROM領域が3kbyte以下である前提とします。

bl_memmap.png

ユーザが使用できるフラッシュROMの領域は、ブートローダの後ろ0x00000C00からフラッシュROMの最終アドレスまでとなります。

Page Top

ユーザプログラム anchor.png

ブートローダから実行を遷移させる事ができるユーザプログラムは、以下の条件を満たしていなければなりません。

  • 先頭アドレスが0x00000C00にオフセットしており、ベクタテーブルがその先頭アドレスより配置されている
  • 0x00000000~0x00000BFFのフラッシュROM領域に対して書き込み操作を行わない

GCCを使用している場合は、リンカスクリプトファイルにてROMとして予約しているアドレスを修正すれば大抵のプログラムは動作するはずですが、それでも動作しない場合は広範な修正が必要になる場合もあります。

Page Top

注意事項 anchor.png

  • ブートローダ自身は単純なローダに過ぎませんので、GDB等のデバッガとの接続は考慮されていません。
Page Top

使用方法 anchor.png

Page Top

ブートローダの動作フロー anchor.png

[Upload]

ユーザプログラムへ実行が遷移するか、ブートローダがコマンドモードになるかの2つの状態に動作が分岐します。
ユーザプログラムへ実行が遷移する前にユーザ自らの操作でコマンドモードに遷移させる場合は、起動直後の0.15秒以内に「!」を3回連続して受信する必要があります。ユーザプログラムが書き込まれていなければ、常にコマンドモードとなります。
ユーザプログラムがユーザプログラムに実行が遷移している時のブートローダの条件を以下に示します。

  • ソフトリセット
    ブートローダのコマンドモードへ遷移
  • ハードリセット
    ユーザプログラムへ遷移
  • WDTリセット
    ユーザプログラムへ遷移
  • BODリセット
    ユーザプログラムへ遷移
Page Top

コマンド anchor.png

SIMPLE TERMからのキー入力にて各種機能を実行します。

Page Top
ヘルプ '?' anchor.png

コマンドのリストを表示します。

>?
LPC82x BL1.0
w:write e:erase d:dump g:go
>
Page Top
書き込み 'w' anchor.png

ホストからフラッシュROMへファイルを転送及び書き込みを行います。また、必要に応じてセクタイレースを行います。

>w

即時転送を待ち受ける状態となりますので、STERMから任意のファイルを選択しXMODEM-1Kプロトコルで転送を開始させます。
成功すればOK、失敗するとNGと表示されます。

>wCCCCCCCCC
OK
>

本コマンドはユーザプログラムの実行は行わず、処理が完了するとコマンドモードに戻ります。

Page Top
実行 'g' anchor.png

フラッシュROMに書き込まれたユーザプログラムを実行します。

>g

実行可能なユーザプログラムでないと判断されると、

>g
NG
>

というメッセージを表示してコマンドモードに戻ります。

Page Top
メモリダンプ 'd' anchor.png

メモリを16進数でダンプ表示します。ブートローダ内で想定しているユーザープログラムが保存されているアドレスの先頭から表示します。
[BS]で前ページ、その他のキーで次ページを表示し、[ESC]で終了します。

>d
 00000C00:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C10:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C20:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C30:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C40:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C50:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C60:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C70:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C80:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000C90:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000CA0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000CB0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000CC0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000CD0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000CE0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
 00000CF0:FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................

なお、MCUのメモリ領域を超えてダンプするとハードフォルトします。

Page Top
消去 'e' anchor.png

フラッシュROMのユーザプログラム領域を完全消去します。

>e
OK
>

Front page   Diff ReloadPrint View   Page list Search Recent changes   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Last-modified: 2017-05-17 (Wed) 20:38:38 (JST) (915d)