Arduino Uno と Linux 環境があります。Arduino IDE は素晴らしいものですが、何か問題が発生した場合、あまり情報が得られません。また、非常に遅くなり、チップとの通信が停止することもあります。
別の方法として、AVR-GCC/g++ と AVRDude ツールチェーンを使用して Arduino Uno をコーディングします。ただし、単純なテキスト エディターとコマンド ライン ツールを使用してプログラミングしながら、 Arduino と同じ機能 ( Serial、digitalWriteなど) にアクセスしたいと考えています。
そこで、すべての関数が定義されたヘッダーファイル、つまり「Arduino.h」を見つけようとしました/usr/share/arduino/hardware/arduino/cores/arduino
。
これをコンパイルに使用しました(makefileを使用してこれを行います)
avr-gcc -mmcu=atmega328p -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=testarduino.o -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard -std=gnu99 -MMD -MP -MF .dep/testarduino.elf.d testarduino.o --output testarduino.elf -Wl,-Map=testarduino.map,--cref -lm
このコードをコンパイルするには:
#include "Arduino.h"
int main(void)
{
init();
pinMode(13,OUTPUT);
while(1){
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
return 0;
}
しかし、コンパイルしようとすると、どの関数も識別されないようです(「xxxxxxxxx」への未定義の参照と言っています)。では、同じ関数を確実に使用できるようにするためにインクルードする必要がある正確なヘッダー ファイルは何ですか? それとも、私が見逃した何かがありますか?