フラッシュ書込み
.
フラッシュ書込み
mbed に対応したプラットフォームが増えてきたので、 mbed interface チップが付いていないマイコンへ書き込む方法。
シリアルブートローダーまたはSWDを使う方法があります。
USBブートローダーを内蔵しているものもありますが、ここでは省略。
シリアルブートローダー
マイコンに内蔵されたブートローダーを起動して、パソコンのシリアル(USBシリアル等)をUARTへ接続して書込みます。
PC | LPC1768 | LPC11U24 | LPC810 | LPC1114FN28 | |
---|---|---|---|---|---|
RXD | ---[100R]--- | P0.2 | P0.19 | P0.4 | P1.7 |
TXD | ---[100R]--- | P0.3 | P0.18 | P0.0 | P1.16 |
DTR | ---|<|--- | RESET | RESET | RESET | RESET |
RTS | ---|<|--- | P2.10 | P0.1 | P0.1 | P0.1 |
GND | --------- | Vss | Vss | Vss | Vss |
RTS と DTR は逆流防止のダイオード等をはさみ接続します。(自動リセット用)
RTSを接続できない場合は GND につなぐ。
※シリアルは3.3Vへのレベル変換がされてるものとします。 FT232等のUSB=シリアル変換が便利です。
ISP書込み 補助ツール
コマンドライン型のフラッシュ書込みソフト
lpcsp や lpc21isp
をGUIで簡単に操作できるツールを作りました。
Flash Magic のコマンドラインにも対応しました。(対応デバイスが増えます)
HexTool に対応しました。(objcopyがないときに)
ダウンロード (2020/03/25 更新)
- [Browse]ボタンで各ファイルのあるパスを指定しておいてください。
- [Convert and Write]ボタンで書き込みます。(lpcspはhexのみ対応なので、元がbinならhexへ変換します)
- [Convert]ボタンは.binを.hexへ変換します。(チェックサムやCRPもこのとき処理します)
- リセット端子やISP端子を自動的にコントロールでき、手動でブートローダーモードにする必要がありません。
- bin ファイルへチェックサムを付加できます。(gccなどから生成された.binファイル用)
- bin ファイルへ CRP (Code Read Protection) 情報を付加できます。
- arm-none-eabi-objcopy.exe (GCC ARM, Sourcery G++ Liteなどに含まれる) があれば bin ファイルを hex ファイルへ変換できます。
- arm-none-eabi-objcopy.exe は、Arduino IDEに含まれる avr-objcopy.exe でも使えます。
- TeraTerm を起動して PC Serial へ出力された文字を表示できます。printfデバッグに便利です。
- TeraTerm を開いたまま書込みをしようとしたときは、COMポートを解放するため自動的にTeraTermを閉じます。
- 新たに接続されたCOMポートを知らせるようにしました。(PortPopのマネ)
Flash Magic
http://www.flashmagictool.com/
.bin ファイルから .hex ファイルへの変換は bin2hex を使うとできます。
シリアルワイヤデバッグ (SWD)
CMSIS-DAPデバッガになる LPC-LINK2 を使って、SWDから書込みます。
http://www.nxp-lpc.com/lpc_boards/lpc-link2/
※他にも、LPCXpressoを使って書込むこともできる。
CoFlash
CMSIS-DAPに対応したフラッシュ書込みツールです。
http://www.coocox.org/software/CoFlash.php
7 comments on フラッシュ書込み:
Please log in to post comments.
LPCWRTを使ってLPC1114FN28にプログラムを書き込むことは出来たのですが、LPCWRTからteratermを開いてもteratermが[未接続]VTとなり、「ファイル」->「新しい接続」から接続しなおそうとするとLPC1114が止まってしまいます。解決する方法があれば教えてください。