У меня есть Arduino Uno и среда Linux. Хотя Arduino IDE отличная и все, однако это не дает мне много вкладов, если что-то пойдет не так. И он также становится мучительно медленным и иногда перестает связываться с чипом.
Альтернативой является кодирование моего Arduino Uno с использованием инструментальной привязки AVR-GCC/g++ и AVRDude. Тем не менее, мне очень хотелось бы иметь доступ к тем же функциям, что и в Arduino (например, Serial, digitalWrite и т.д.) при программировании с использованием простого текстового редактора и инструментов командной строки.
Итак, я попытался найти файл заголовка со всеми определенными функциями, то есть "Arduino.h" в /usr/share/arduino/hardware/arduino/cores/arduino
.
Я использовал это для компиляции (используя make файл для этого)
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;
}
Но ни одна из функций не отображается, когда я пытаюсь скомпилировать (говоря undefined ссылка на "xxxxxxxxx" ). Итак, каков точный заголовочный файл, который необходимо включить, чтобы я мог использовать одни и те же функции? Или есть что-то еще, что я пропустил?