<CQ付録ColdFire用のBDMデバッガ>
Interface2008年9月号にはCodeWarriorのSpecial版のCDが付録についています。
ところがCodeWarriorを使用するには別途BDMデバッガが必要になります。
2008年10月号ではTCP/IPを使用したGDBスタブによる開発方法も紹介されるようですが、TCP/IPを使用したスタブではColdFireのイーサネット機能を使用するプログラムの開発は難しそうです。
何とかBDMデバッガを作成できないかと、インターネット上を探したところ@ele(アットマークエレ)で活躍中のぐらろさんがプリンターポートを使用するColdFire V2用のBDMデバッガの回路図を公開されていました。
ぐらろさんの公開されたBDMデバッガはTTL(74LV244)を一つ使用するだけのとても簡単なものです。そこでオプティマイズで取り扱っているMAX2用のJTAGライターを改造することで、割と簡単にBDMデバッガを作成する方法を紹介します。
フリースケールの推奨するBDMのコネクタは26ピンですが、実際に使用している信号は電源を含め8本ですので、CQ付録のColdFire基板のリカバリーコネクタ(10ピン)をBDMポートに改造する方法も紹介します。
(ColdFire V2のCPUであれば今回のBDMデバッガが使用できると思われますが、CQ付録以外での動作確認は行っていません)
<MAX2 JTAGライターを改造する>
MAX2 JTAG ライターに対して最小のパターンカット&ジャンパで目標とするBDMデバッガ(回路図はこちら)を作成します。
まずはDSUB25ピンコネクタの不要なピン6本をラジオペンチなどを使って引き抜きます。多少力が必要ですが、強く引っ張れば抜くことが出来ます。
次は基板のパターンカットですが、わずかに一箇所ですむようにしました。
22pFのチップコンデンサと基板裏面の3.3KΩ集合抵抗は実装しません。
後は通常のMAX2 JTAGライターの組み立てと同じです。
部品面のジャンパ線は写真のように配線します。
(基板のスルーホールにジャンパする箇所が一つあります)
裏面もジャンパします。
これで一応完成です。
BDMコネクタの信号配置などは回路図を参照してください。
<CQ付録基板のリカバリコネクタをBDMポートに改造する>
BDMデバッガの回路図とInterface 2008/9の98ページの回路図を参照すればCQ付録基板と接続することが出来ます。
ですが、これでは別途ユニバーサル基板が必要になり面倒です。
BDMデバッガとCodeWarriorがあれば、内蔵フラッシュメモリのリカバリーも可能ですので、CQ付録基板のリカバリー用10ピンコネクタは無くても問題ありません。ですので、リカバリーコネクタをBDMポートに改造して使用することにしましょう。
まずは基板のパターンカットです。部品面は2箇所あります。
(パターンカットで1ピンのRCON/EZPCS信号は引き出されなくなります。必要な場合は基板上のR6からジャンパしてください。)
裏面は一箇所の3本をまとめてカットします。
BDMコネクタ用のピンヘッダもピンを一本ラジオペンチで抜いておきます。(忘れずに!)
(左手前の一本が抜いてあります)
抜いた一本が写真のような位置に来るようにペンヘッダを半田付けします。
このときピンヘッダは下写真のように少しDCジャック側に傾けて半田付けすると、後々プリンターケーブルなどの取り回しが楽になり、またBDMデバッガの逆挿し防止にもなります。
そしてBDMに必要な信号を配線します。
CQ付録基板にシルク印刷されているピン番号と異なりますので、間違えないように基板に印刷されているピン番号はマジックで消しておき、新たな一番ピンの位置に目印のマーカー(下写真の左上ピン)を入れておきます。
BDMデバッガとの接続向きは写真のようになります。くれぐれも間違わないでください。
<付録CDに収録されているCodeWarrior V7.0を使う>
あとは普通に付録CDのCodeWarriorをインストールして使用します。詳しくはInterface 2008/9号の第4章を参照ください。
Interface誌はUSB接続のBDMデバッガを前提に解説していますが、今回作成したBDMデバッガはプリンターポート版ですので、プロジェクト作成時にBDMデバッガを選択する箇所で「P&E Parallel BDM Multilink」を選択します。
これでフラッシュの書き込みや、プログラムのステップ動作、ブレークポイントの設定など優れた開発環境を使用することが出来ます。
<BDMデバッガ + CodeWarriorを使って内蔵フラッシュのリカバリを行う>
CQ付録基板のリカバリーコネクタを潰してしまったので、念のためBDMデバッガを使ったリカバリ手順を押さえておきます。
まず内蔵フラッシュメモリの吸出しですが、フラッシュ書き込みツールでは吸出しが出来ないようですので、デバッグ中のメモリダンプ・リストア機能を使用して吸い出すことにします。
まず9月号第4章のLEDチカチカプログラムを実行して、CPUを停止した状態にします。
この状態でツールバーの 「Debug -> ColdFire -> Load/Save Memory」 を開きます。
CQ付録のCodeWarriorはスペシャル版のためフラッシュ書き込みツールが128Kbyteまでしか対応しないため、2回に分けて内蔵フラッシュメモリーの内容をファイルに落とします。
最初はAddress は 0で、Sizeを 0x20000にしてOKボタンを押します。
次は残りの128Kbyteをファイルに落とします。
Adress を 0x20000に変更して、別ファイルにセーブします。
これで内蔵フラッシュメモリ256Kbyte分が吸いだせました。
今度は書き込む手順です。
書き込むときはデバッグの途中でなくてもOKで、ツールバーの「Tools -> Flash Programmer」を起動します。
書き込みツールの初回起動時には、MCF52233_INTFLASH.xmlスクリプトを読み込ませて、書き込み対象がCPU内蔵フラッシュであることを設定します。この手順については9月号の111ページにあります。
最初にフラッシュメモリの消去を行います。Erase/Blank Checkを選択し、All Sectorsに対してEraseボタンを押します。
書き込みはProgram/Verifyを選択して、2回に分けて書き込みます。
Apply Address Offsetのチェックは外した状態で、先ほど吸い出した前半のバイナリファイルを指定してProgramボタンを押します。
後半はファイル名を変更してApply Address Offsetに20000を設定して、Programuボタンをおします。