マイコンの記録

今はとある組込系開発の活動記録です。

デバッガに接続出来なくなったとき。

このところ、LPC1347というマイコンでちょっとした開発を嗜んでいる。

f:id:loopsketch:20180909215551j:plain


昨晩、とある実験でちょっと悩んでいた部分が巧くいき、ホクホクでベットに入ったのだが、翌朝、LPCXpressoでDebug As C/C++ MCU Application で起動すると、

 Error: Error reported by server (redlinkserv):
RedlinkAPI: Hardware interface transfer error
Redlink Server has been terminated and will be restarted.
Please restart your debug session.
If the problem recurs, please power cycle your debug probe and restart LPCXpresso.

 というダイアログが表示され、全く起動できなくなった。一晩開けてしまったし、何かOSやドライバがアップデートされてしまったり、カスペルスキーが何かやらかしてないかとも思ったので、カスペルスキーを停めたり、OSXなのでWindows10にLPCXpressoをインストールしなおしてやり直してみたりしたが、たしかに Redlink Server が返すStatusはfailになっていて、どの環境でも同じだった。マイコン壊しちゃったかー、と思ったが、必死にぐぐると、ISPモードなる救世主がいることがわかった。

LPCXpresso: デバッグアクセスできない場合の対処法 | easy labo

 

こちらのサイトによると、アクセス出来なくなるケースはいろいろあるみたいだが、心当たりがあった! 標準でJTAGアサインされているGPIOをADCから入力するように設定変更したのを焼いてしまったのだった。自ら接続を切ってしまったのだからデバック出来なくなるの当たり前だよね。。。サイトによるとISPを立てればISP(In-circuit Serial Programmer) Bootloaderが起動できるみたい。書込専用モードってことだよね。そのサイトにも書いてあったが、ユーザマニュアルをISPで検索すると、LPC1347では PIO0_1 をLowにしてリセットすればいいみたい。そこで、PIO0_1をGNDに落として、LPC-LinkのUSBをさすと、LEDが半輝度位で起動した。この状態でLPCXpressoからDebugAsしたりすればプログラムを送り直すことができた。そのままデバッグは出来なかったのでISPをオープンにして、もう一回USBをさしなおしてからデバッガもやり直すとデバッガも接続できるようになった。借り物のボードなので復活できてめっちゃ良かった。。。

 

元々の設定を変えなければ、ボードはそのままつなぎっぱなしで直ぐデバッグできて便利だが、全てのGPIOは使えない、ということか。ADCを使えるピンは決まっているし、それがLPC-Linkにつながっているのとかぶっているので仕方無いか。書込みは常にISPモードで、と考えれば全てのGPIOを自由に使えるのだから、そっちの方がいいのかも。