こちら花小金井3丁目  Last update:2002/02/28
[TopPage] [FMTOWNS] [Hardware] [Freesoft] [怪飲料] [CHAT兼掲示板] [LINK・etc] [About]

■ AVR-GCCをインストールしてみる ■

 AVRマイコンは、開発環境にGCCが使えます。ありがたいことです。GCC とは、GNU C Compiler の略称で、フリーのCコンパイラです。

 

 まず、AVR-GCC本体を入手します。cygwinタイプとbinutilタイプがあるようです。私は後者を使いました。画面は、AVR Freaksから入手した avrgcc20010821a.exe のものです。最初はこのようなexeになっているパッケージのもののほうが楽です。

 インストール途中でDOS窓が開いて、ライブラリのコンパイルを始めます。かなり時間がかかります。

 

 インストールが成功すると、こんなかんじのディレクトリ構成になります。デフォルトなら、c:\avrgcc\bin にpathを切るバッチファイルが生成され、スタートメニューに追加されます。


■ とりあえずコンパイルしてみる ■

 とりあえず、コンパイルできるかどうか確認します。
 試しに最低限のソースを作ってみました。こんな感じでしょうか。

#include	<io.h>
#define 	nop() __asm__ __volatile__ ("nop")


void BlinkWait(unsigned int wt)
{
	unsigned int i;
	
	for( i=0; i<wt; i++ )
	{
		nop();
	}
}


int main( void )
{
	outp(0xFF, DDRB);			/* PB0-7 All Output */
	
	for (;;)				/* Loop Forever */
	{
		outp( 0xFF, PORTB );	/* PB0-7 = H */
		BlinkWait(10000);
		outp( 0x00, PORTB );	/* PB0-7 = L */
		BlinkWait(10000);
	}
	return 0;				/* コンパイラにwarningさせないように */
} 


 コマンドラインからはこんなかんじで実行します。
    C:\AVRGCC\USR> avr-gcc -mmcu=at90s2313 test.c
 -mmcuオプションでAVRの種類を指定します。成功すれば、a.outというファイルが生成されます。特にエラーが出なければ、メッセージは何も表示されません(unixの流儀ですね)。最後に-Sオプションを付けると、バイナリの代わりにアセンブラソースを吐きます。
 今回はAtmel純正互換の秋月系プログラマを使用しているので、a.out形式(ELFバイナリ)ではなくIntel HEXフォーマットでないと困ります。そのため、とりあえずこんなかんじで実行します。
    C:\AVRGCC\USR> avr-gcc -mmcu=at90s2313 test.c -o test.elf
 -oオプションで、出力ファイル名を任意に指定できます(別にa.outのままでも良いのですが)。一度a.out形式で出力させてから、HEXフォーマットに変換します。
    C:\AVRGCC\USR> avr-objcopy -O ihex test.elf test.hex
 これで、test.hex が生成されます。成功すれば、例によってメッセージは表示されません。あとは、AVRASMのときと同じように、AVRへ書き込みます。なお、 ihex の代わりに srec を指定すると、モトローラSフォーマットに変換出力します。

 生成された .hex ファイルをASMの時と同様にAVRに書きこむと、PB0〜7 に繋いだLEDが点滅するはずです。





もどる