OpenOCD小ネタ15 -LPC5410x,LPC82xシリーズの書き込み対応-

11月ごろに新規ラインナップリリースの報は小耳にはさんでいたのですが
まだまだ先かと思っていたLPC54102XPressoが秋月さんから唐突に発売
されて
おりました。同時にLPC824MAXも販売されましたので早速手に入れ
評価してみましたのでご紹介します。


●LPC82xシリーズのフラッシュ書き込みに対応

LPC824MAX、正式名称はLPCXPresso824MAXです。

中心部のLPC824はCortex-M0+コアを持つLPC810シリーズの上位に位置し、
フラッシュメモリとSRAM容量の増強に加えてDMAも追加されております。
もはやLPC810シリーズとは別品種(後述の部分も含め)とみて良いでしょう。
付属のデバッガはおなじみMBED版CMSIS-DAPです。マスストレージからの
書き込みもサポートしております(が当ぶろぐでは全く使いません)。

ん…?なんかコネクタのハンダが雑だ…

!!!!!!なんかコネクタうまくハマらないと思ったら…
とりあえず精密ラジオペンチで障害物取り除いて対処しました。
後で新しいのに取り換えておきましょ。


気を取り直してOpenOCDから書き込みしようとしてみました…
が、
LPC81x系と同じだろうと高をくくっていましたが正しく書き込めませんorz
もう少し突っ込んで調査してみると最初の1kBしか書き込めてない現象
…これはまさか

UM10800rev1の386ページにはIAPのスタックはLPC810系と同じく148byte確保せよと
指示してあるのですがこれに従うと駄目でlpc4300系みたいに208byte確保しないと
ただしく書き込み動作、正確にはIAPコマンド51が連続で実行できませんでした。
マニュアルの整備がまだ行き届いてない感じですね。LPC82xはリリースして結構時間
経ってるので多分同じ指摘が来てるはずです。来月あたりにこっそり変わってると思い
ます。NxPさんはドキュメントの修正対応かなり早いので特に気にしてませんがあまり
高に言うとコワモテのくまさんに〆られるのd


そんなわけでLPC824にも書き込みデバッグが可能になりました。
ついでにLPC11xxとLPC17xxで対応しているフラッシュメモリサイズの
自動認識についてもLPC800シリーズ向けに対応しておきましたので
cfgファイルの統一可能です♥



●LPC54102のフラッシュ書き込みにも対応


LPC54102XpressoはCortex-M4FとCortex-M0+が同居したLPC5410xシリーズと
V3にバージョンが上がったLPCXpressoのハードウエアで構成されています。

デバッガとしてはLPC-Link2同等品として動作します。CMSIS-DAPでデバッグが
可能になっております。

またコネクタ構成もArduinoのシールド互換に構成になっており、mbedにも
対応予定だそうですがmbed公式にはまだ影も形も使ってる人すらもいません。
つまりこの記事投稿するのが早ければ私が国内第一号になるはずです!!!


と、その前に書き込みをできるようにしなければなりません。LPC824と同じく
OpenOCDにパッチを当てる必要がありました。ブートローダーの構成・エントリ
ポイントはLPC1500シリーズと同じですが当然ながらフラッシュメモリのセクタ
サイズとIAP消費スタック容量が異なりますのでそれに合わせて作りこんで
いきました。


作りこみ自体は慣れたものなのでLPC5410x系のフラッシュ書き込みは危なげ
なく完了し、現状M4コア単独のみですが動作も確認できました。

但し書き込み時にはcfgサイドでちょっとコツが必要です。LPC5410xはLPC1000系
には存在しているベクタアドレスのリマップ機能がなく、電源投入時はもちろん
各リセット時にもブートローダー(0x03000000から開始)にまず飛び、ブートROMの
先頭が0番地に来ます。つまりリセット直後にhaltをかけた状態でベリファイを
行うと、ユーザフラッシュではなくブートROMの内容を読んでしまいベリファイに
失敗します。

これを防ぐためにフラッシュにプログラムを書いた後は一旦リセットをかけて
ユーザプログラムを走らせ(reset run)てからhaltをかけてやる必要があります。
私が公開しているOpenOCDのプログラムと同梱のLPC54102向けcfgは一連の操作を
リブートコマンドとしてprocに定義してありますのでユーザサイドでは特に意識
しないで書き込み・デバッグが可能となっております。

おきぱにはGCCでビルドできるLPC54102XPresso向けのプロジェクトを置いて
ますので秋月さんで購入された方は試してみてください。上で述べたとおりこの
ボードに仕込まれてるものはLPC-Link2相当でHighSpeedで繋がるため、OpenOCD
から書くと極めて遅いと言われているCMSIS-DAPにも関わらずかなり早いです。


これらLPC2000向けパッチはgerritにもパッチをあげておりますので興味のある方は
ビルドして試してみてください。またWindows環境の方はおきぱのOpenOCD
パッチ適用済みですのでご利用ください!

Go to top of page