macOSでavr-gcc環境作成

Last-modified: Sun, 05 Jan 2025 20:23:45 JST (8d)
Top > macOSでavr-gcc環境作成

AVR開発環境を作成メモ
AVRはMICROCHIP社 に買収された為、最近のAVRはMICROCHIP社が提供しているMPLAB XIDEで開発ができます。
一方、古いAVRチップはサポートされていないので、AVRで使用できるGCCである、avr-gccを導入します。
avr-gccで使用できるヘッダファイル等のリファレンスについてはここを参照してください。

GCCの導入

home brew を使用し、avr-gccをインストールします。

brew install avr-gcc

ビルド

ビルド時にターゲットとなるAVRマイコンの形式を指定します。ここではターゲットとして AT90S2313を指定しています。オプションのWallはビルド時詳細な警告を表示します。またOsオプションで最適化を行います。

avr-gcc -Os -Wall -mmcu=at90s2313 main.c -o test.elf

生成されたelfファイルからHexファイルを生成します。HEXファイルの形式はIntelHEX形式、対象となるelfファイルはelf32-avrを指定します。

avr-objcopy -I elf32-avr -O ihex test.elf test.hex

あとは生成されたHEXファイルを適当なライターで書き込めばOKです。

サンプルプログラム

#include <avr/io.h>

// 適切なクロック周波数。util/delay.h読み込み前に記述しないとエラーになる。
// または、avr-gccでビルド時に -DF_CPU=4190000UL のようにオプションで指定をする。
#define F_CPU 4190000UL // 内蔵クロック 4.19MHz
#include <util/delay.h>

// LEDを接続するピン
#define LED_PIN PB0

int main(void) {
    // DDRBの設定: LED_PINを出力に設定
    DDRB |= (1 << LED_PIN);
    while (1) {
        // LEDをON
        PORTB |= (1 << LED_PIN);
        _delay_ms(500);

        // LEDをOFF
        PORTB &= ~(1 << LED_PIN);
        _delay_ms(500);
    }

    return 0;
}

Counter: 22, today: 1, yesterday: 0

このページの参照回数は、22です。