AVRの開発環境「Atmel Studio 7」のインストール
までが前回の話。続いて、その使い方を学ぶべく、テストプログラムを書いてみる。
プロジェクト作成
Atmel Studio 7では、と言うか、Visual Studioでは、プロジェクトという単位で開発を管理するらしい。ということで、まずは、「新規プロジェクト」を作る。
Fileメニューから、New → Project…とたどる。
プロジェクト名は、とりあえず「test01」とすることに決めたけれど、その先がわからない。検索してあちこちのサイトを見てみた結果、C言語で作成するなら「GCC C Executable Project」を選択すればいいらしい。
次にデバイス選択画面が出てきた。
デバイスは、まずはシンプルなATtiny13Aを選んでみる。
これで、プロジェクトの雛形が作成された。
初期状態でキャプチャするのを忘れて、CreatedとAutherを変更したあとのもの。そのためか、当該行の左に黄色のマークが付いている。「変更された行」っていう意味なんだろう。
テストプログラム作成
最初のプログラムは、伝統に則って「hello, world」。
とは言え、文字を出力することはできないので、メモリに書き込む。実質、この一行だけ。OS上で動くものではないので、無限ループ。
コンパイル(ビルド)
コードを書いたら、コンパイル。メニューのBuildがそれだろう。
メニューを開くと、主だったものと思われるものだけでも、「Build Solution」、「Build test01」、「Compile」とがある。どれを選べばいいの?そもそも、BuildとComplileの違いって?
ということで、ビルドとコンパイルの違いを調べる。結果、どうやら、「ビルド」はコンパイルだけじゃなくてリンクもやることらしい。なるほどね。要は、Makefileを頑張って書く必要はないってことか。「Build Solution」と「Build test01」の違いは不明のままだけど、今回はどのみちファイルは一つだけだから、最も大きな概念と思われる「Build Solution」の方をやっておけば問題なかろう。
ということで、「Build Solution」を実行。
いきなりエラー…。
しばらく悩んだけれど、よく見たら「sprintf」のスペルが間違っている。それで、下に赤い波線が引かれているのか。
スペルを直したら関数名がイタリックフォントになった。
改めてビルド。
今度は、エラーなく終了。
実行
問題なくコンパイル/ビルドできたので、早速実行してみる。実機があるわけじゃないけど、シミュレーション機能があるんじゃないかなという勝手な想像の下に。
でも、残念ながら怒られる。
他に選択肢はないので「Continue」ボタンを押す。画面はプロパティ設定が表示されていた。
ここのToolを開くと、リストにSimulatorがあったので、これを選択。
再び、実行。
今度はエラーにならずに走っているようだ。
しかし、これでどうしたものかと思っていたが、右下のウインドウに「Unavailable when debuggee is running.」と表示されている。なるほど、プログラムが走っているので何もできないようだ。無限ループにしているのだからしょうがない。
といことで、ポーズ(ブレーク)ボタンを押してみる。
プログラム停止。
下の左に変数、右にメモリダンプの情報が表示されている。
変数の詳細(中身)を表示させてみた。
何か入っているけれど、10進数で表示されているのでよくわからない。この上で右クリックしたメニューが出てきた。
とりあえず、「Hexadecimal Display」を選択。
16進表示に変った。なんとなくそれっぽく入っているようだ。ASCII表示してくれればもっとわかりやすいのだけれど、メニューに見つからず、できるのかどうかわからない。
なにはともあれ、プログラムを書いて、ビルドし、走らせてみることができた。とりあえずはここまで。この先は、実デバイスを入手してから。
コメント
偶然見つけたので足跡を。
デバッガも何を買うかが悩みどころですね。
安価なPICKit4とかも使えるようになってきてますが、古いデバイスには十分対応できていないみたいですし。
勉強頑張ってくださいね。
コメントありがとうございます。
いろんなことを片っ端からかじりながら並列で進めているので、一つ一つの歩みが鈍いです^^;
ボチボチやっていこうと思います。
初めまして。
すみませんが一つ教えてください。
しばらく前からATMEL STUDIO 7で遊んでいます。
最近別のノートPCにも入れて実行するとデスクトップPCと違う反応で困っています。
起動時にUSB接続のAttiny416 Explained Nano というボード(ライターとして使用)は認識し、Cで記述してBuildします。
次にToolsの中のDeviceProgrammingで書き込むのですが、このときボードの中のmEDBGを経由しますのでそれを選択。
次にDeviceでターゲットのATtiny3216を選択してという流れです。
ところが、同じ環境のはずのノートだとDevice 選択の段階でATtiny416しか表示されず、ATtiny2316が選択できません。やむなくキーボードから打つのですが、Buildのたびに同じ事をせねばならないのです。デバイスのフォルダや設定はわかる範囲で同じにしたつもりです。
なにかアドバイスをいただければと思う次第です。
橋本市 丹生
あいにく役に立てそうは情報は持っていません。
AVRもATtiny13、85、ATmega328Pの三種類しか使ったことがありません。
早速のお返事ありがとうございます。
そうですか、残念です。これからもよろしくお願いいたします。