※Arduinoやmbedの記事ではありません。
AVRをCとアセンブラで開発、JTAGICEでデバッグ。
CPUはTiny2313・ATmega328・ATmega1284など。
ラジコンで使う比例制御方式のサーボを動かす記事があります。
AVRはArduinoに使われてますが、ここではJTAGICEと共にC言語やアセンブラで直接コーディングしています。

Atmel studio 7とJTAGICEを組み合わせた環境で、Arduinoが動くそうです。英語 日本語
・ハードはArduino
・ライブラリもArduino用をIMPORT
「Arduinoのハードとライブラリを利用してJTAGICEでデバッグ」
Arduinoの最大の弱点(貧弱なデバッグ環境)をカバーしてAVRも生き返る。
μVision+mbedが高性能だけど、Tiny13や4313で済むならAVRの出番です。
はじめに
IDEはAtmel studio 7、Windows10に新規にインストールしました(問題無く動作しています)。
Atmel studioは6 → 7と新しくなって、使い方が少し簡単になった。
ただDragonが動かない。二台持ってるどっちも動かず。
JTAGICEは動きます。
JTAGICE3
JTAGICE3を購入したときの記事です。
Digi-keyで1万円。詳しい説明はこちら。
8bitのAVRしか触らないんで、5千円のDragonがあれば全然要らない。
JTAGICE3は高圧プログラミングが出来ないがJTAGが使える。
JTAGで使うとDragonより早いのでかなり快適。

JTAGICE3とmega1284pをJTAGで接続してみた。詳細はこちら。
うむむ~なかなか快適。
ISP接続よりもずっと速度が速くて、待たされる時間が短い・・・これはデバッグサイクルでは結構大事だ。
デバッグ環境のチェック
なにはともあれデバッグ環境が動くことを確認します。
この確認が終わってからコーディングに入ります。
なおAtmel studio 7ではDragonが動かないので、記事にしていません。
まずはプロパティーのToolで”debugWIRE”を選択する。

もしこれが出ちゃったら、ここでコードをROMに焼いてやる。

その他
CKDIV8を外す
[WARNING] CKDIV8 is programmed and may interfere with debugging operation.
了解?
それとCKDIV8がチェックされてるときは250kでのアクセスはダメ。
デバッグ時だけじゃなくて、FuseやFlash書込のときも動作不良になる確率有り。
要するに CKDIV8 は最初に外しておくのが正解ってことじゃ。

コメントの中の赤いアンダーラインがウザイ
で、あちこち探してたら外し方を書いてくれてました。こちら。

自動でカッコを追加されるのも邪魔くさいんで外す

言語の切り替え

塗り潰してあるのがH
デバッグに便利なIOポートの表示なんだけど、どっちがHでどっちがLか良く分からんの。
塗り潰してあるのがHだね。

コードが無視される
最適化が効き過ぎてコードが無視されちまう。
変数が見えないとかならともかく、関数その物が存在しないかのごとき振る舞い・・・ステップ実行もブレークポイントも効かないんね・・・どう言う最適化じゃ~
ま、律儀に volatile すれば良いんだろうけど。

拡張機能を使う
AtmelStudio内の拡張機能を使ってみた。
TerminalWindowをインストールして使ってみたけど、TerraTermと大差無いや。


コメント