取り敢えずプロジェクトを作ろう(新規プロジェクト作成とシミュレーション実行)

対象として秋月の↓のキットのマイコンを ATmega328P-PU に換装して水晶振動子は 16MHz で動かすことを前提として解説していくつもりですが、 とりあえず今回は実機を使わずにシミュレーションで動かしてみます。
セットの 168P でも動くのですが、RAM の容量が倍の 328P の方が色々詰め込めるのでこっちにしています。

[ATmega168/328マイコンボードキット]
http://akizukidenshi.com/catalog/g/gK-04590/

[ATmega328P-PU]
http://akizukidenshi.com/catalog/g/gI-03142/

Arduino Uno Rev3 でも動くと思いますが、未確認ですので自己責任で行ってください。
一応注意点として Arduino Uno Rev3 に搭載されているマイコンは 328P ではなく 328 なので換装してください。
そのままで進めていくと Arduino としては使えなくなるので元の 328 マイコンは保管しておいて Arduino として使いたくなった時に挿し直せば元通りになるのでおすすめです。

[Arduino Uno Rev3]
http://akizukidenshi.com/catalog/g/gM-07385/

解説で使用している Atmel Studio は下図の通りのバージョンです。(多少バージョンが違っていでも同じような操作でできると思います)

Atmel Studio を立ち上げて [File]-[New]-[Project] を選択します。

New Project ダイアログが開くので下図のように左ペインで [C/C++] を選択し、中央ペインで [GCC C Rxecutable Project] を選択、 下部の [Name] エディットボックスに好きなプロジェクト名(下図では “328base”)、[Location] エディットボックスにはプロジェクトフォルダが 置かれるフォルダ(例えば “C:\AvrProj”)を選択します。
[Solution name] エディットボックスには好みにもよりますが何も変更しないで、その右隣にある [Create directory for solution] チェックボックスのチェックを外します。
以降はこの設定を前提に説明を進めますのでプロジェクト名など設定を変更した場合には適宜読み替えたり、対象のファイルを探し出して下さい。
全て設定したら [OK] ボタンを押します。

Device Selection ダイアログボックスに切り替わります。
Atmel Studio で対応するマイコンのリストがずらりと並んでいますが、ここから選択するのは面倒なので右上のエディットボックスに “328” と入力します。
すると、下図のように3つだけになりますので真ん中の [ATmega329P] を選択して [OK] ボタンを押します。

下図のようにプロジェクトが作成されました。
左ペインの Solution Explorer から main.c をダブルクリックすると中央に main.c の中身が表示されます。
このままビルドして本題のシミュレーション実行しましょう。
まずは赤矢印の [Rebuild 328base] をクリックします。(押せない状態だったら左ペインの Solution Explorer の 328base を選択状態にしてから。 ボタンが無かったら [Build]-[Rebuild 328base] で)

下の Output ペインにずらずらと文字列が流れていって下図のように “Rebuild All:1 ~” と表示されます。
今度は下図の赤矢印の [None on] をクリックしてください。(ボタンが無かったら [Debug]-[328base Properties..])

main.c のソースプログラムが表示されていた領域に下図のようにデバッグツールの設定が表示されます。
赤矢印のリストボックスの下三角をクリックして Simulator を選択してください。

ではシミュレーション実行してみましょう。
下図の赤矢印の緑色の右三角をクリックします。

実行されると一番下に Running と表示され Disassembly タブが追加されますが、とりあえず main.c タブを選択します。

シミュレーション実行されているといわれても実感がありませんね。
main.c の “{” の行の左側のグレーの部分、下図の赤矢印の辺りをクリックします。

クリックした位置に赤丸が表示され、すぐに黄色い右矢印が赤丸内に表示されます。
一番下には Stopped と表示されています。
赤丸はブレークポイントといってプログラムがその位置を実行する直前に停止します。
黄色い右矢印は次に実行されるプログラム位置です。
Disassembly タブを選択しましょう。

Disassembly タブでは次に実行されるプログラム位置 00000040 に “RJMP PC-0x0000” というアセンブラコードがあり、 対応するC言語ソースが1つ上の行に表示されています(この行の場合は “{“)。
ブレークポイントを消しましょう。
赤矢印の赤丸をクリックします。
ブレークポイントのセット、リセットはC言語表示、逆アセンブル表示いずれでもできます。
逆アセンブル表示時ではオペコード単位で設定できるのでループ関係でたまに使いますが、ほとんどはC言語ソース表示でセットします。

ブレークポイントで停止していた次に実行されるオペコードは次に実行する位置を 00000040 にするというものなので、00000040 の位置で無限ループします。
これ以上は何も起こらないので下図の赤矢印の赤い四角をクリックしてシミュレーション実行を終了します。

これで今回は終了です。
Atmel Studio を終了しましょう。

今回作成したプロジェクトのサンプルを↓にアップしておきます。

サンプル

※初回オープン時に Security Warning が表示されますが [OK] ボタンを押して進めてください。