« XBeeを通販で購入 | トップページ | フィジカルコンピューティング »

2009/05/20

コンパイルオプション?

さて、以前購入した『試しながら学ぶAVR』に手を付けました。


テストボードで使うプログラムをちょろっとアセンブラで作り、その後C言語で書いてみるという手順だったのですが、アセンブラで書いたプログラムと、Cで書いたプログラムの動きが違う・・・。

 
 
なんで?どうして?本にそってやってるのに~
なにか間違ってるのか?この短いプログラムで・・・
 

そういえばサポートページとか言うのがあって、そこでは例題のプログラムがダウンロードできるとかできないとか。

『試しながら学ぶAVR入門』のサポートページ
はあっさり見つかり、プログラムをDL。
そのまんまコピペ。


 
 
さてと


 
 
動きが違うなぁ。(動いていないわけではないのがみそ)

 
 

ふと、サポートページを見ると
 
『WinAVRの最近のバージョンではコンパイル・オプションの初期値が、書籍掲載のものと異なります。
 現時点での最新版 WinAVR-20080610では、 「Project Option」ウインドウの
「Optimization」の初期値が「-Os」となっています。

 このままでは、テスト・プログラムのうち、空ループによる時間待ちを使用しているプログラムでは空ループが最適化されてしまい時間待ちしなくなります。
 そこで、空ループを使用するプログラムについては、この設定を最適化を行わない「-O0」に変更します。』

 

あー、しょっぱなのプログラムにも空ループ入ってるよ。

ということでオプションを変更して事なきを得ました。


たまたまサポートページがあるだろうくらいに思って探しましたが、そもそも気づかなかったらいつもでもなぞのまま闇に葬られますな。

なんか書籍の訂正って紙が一枚ペロッと入ってるイメージがあるけど今は違うのか。
それよりもサポートページがあるなら、書籍の中に記述して欲しいものだと思うのだが。

ま、そういうことで(^^

|

« XBeeを通販で購入 | トップページ | フィジカルコンピューティング »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: コンパイルオプション?:

« XBeeを通販で購入 | トップページ | フィジカルコンピューティング »