デバック
2018年11月21日にて現在のURLは次のURLに移行しました。
プログラムの作成ページで作成したプログラムが動作するかを、eZdsp F28335をPCと接続して動作確認を行います。
デバックの手順例
➊ 作成・保存したプロジェクトは、Project/Open コマンドを実行して開く。
[test.pjt]を、ダブル・クリックする。
CCS画面左の、Project View ウインドウのSource/main.cをダブル・クリックすると、ソースプロ
グラムが表示される。コンパイルしてエラーが出ないことを再確認しておく。
➋ プログラムをeZdspで実行させるため、コンパイル・ファイルをeZdspにロードする。
1) Debug/Reset コマンド実行
[Disassembly] 表示が出るが、×で消す。
2) File/Load Program クリック
3) Debugホルダー内の[test.out]をクリックし、開く。
[Disassembly] 表示が出るが、×で消す。
➌ Debug/Go main コマンドを実行。ポインタがmainプログラムの先頭をさすのを確認
し、CCS画面左の、Project View ウインドウのRUNアイコンをクリックする。 RUNアイコン
プログラムがRUNし、デバックが可能な状態となる。
プログラムを停止させるには、Haltアイコンをクリックする。 Haltアイコン
➍ プログラムが正常に動作しているかの確認は、I/O・内部変数の状態等から行う。
1) このプログラムは、LoopCountによる永久ループの中で、EPWM1によるADC割込みを
発生させ、ADC値を配列Voltage1,2に格納するもので、まずLoopCountが回ってい
るかを確認する。
mainのソースプログラムfor文の中の
[LoopCount]上で、マウスを左クリック
し、右クリックでAdd to Wach Window
を選択すると、画面下のOutput
Window右に、変数LoopCountの
瞬時値が表示される。
その表示近傍で、マウスを右クリックし、Refreshを選択すると、表示値が更新される。
これにより、LoopCountは回っていると分かる。
2) 次に、ADCが実行されているかのチェックを行う。
ADC入力端子に試験電圧を入力し、ADC値が配列
Voltage1,2に格納されていることを確認する。
View/Memoryコマンドを実行し、[Enter An Address]
欄に、[Voltage2]を入力しエンターキーを押すと右に示す
Voltage2と続きのVoltage1の配列内容が表示される。
その表示近傍で、マウスを右クリックし、Refresh
Windowを選択すると表示値が更新される。
試験入力電圧を、0Vと約1.6Vとしたので、3Vフル
スケールであるので、正常値が表示されている。
3) デバックの方法は個人差もあるので、自分に適した方法を選択する。
方法例として、
① Breakpoint の設定
② 変数の確認 ・・・・・・・ ➍-1) の方法
③ メモリー内容の確認 ・・・・・・・ ➍-2) の方法
④ CPU内部レジスタの確認
⑤ テストビットの設定・出力
などがあり、これらの組合せ又は、創意工夫で行われる。
④と⑤の方法について、続いて説明を加える。
4) コマンドバーの[GEL]をクリックすると、プルダウ
ン・メニューで、CPUの内部レジスタのWatch
選択が出来る。選択すると画面下の
Output Window右にレジスタの状態が
表示される。
レジスタの内容・状態をWatch出来るの
で、他の方法で行き詰った場合に、助
けになる。
5) Exampleプログラムの内容では、実時間レベルでのEPWMによるADCトリガ、ADC実行タイ
ミングを視覚的にチェック出来ないので、プログラムを追加しオシロでWatch出来るのように
する。
時間軸を変えて見ると、ADCトリガと
ADC割込みのタイミングが分かる。
右の図は、オシロで観測した波形で、
CH1 :ADCトリガ(EPWM1A)
立上りでトリガ
CH2 :ADC割込み処理
約870μS毎にADCが実行されてい
る。
デバックの方法によっては、効率的にもなり、非生産的にもなるので絶えず創意工夫が大
事です。
希望者に、5)のプログラム・ソースを無償で提供しますので、お問い合わせページからメールで
ご連絡下さい。