Niedawno rozpocząłem nowy projekt za pomocą mojego Arduino, które od jakiegoś czasu zbiera kurz. Wraz z fizyczną tablicą zbierającą kurz, podobnie jak moja kopia avr-gcc i bibliotek Arduino. Mogę zarządzać aktualizacją avr-gcc, ale nie pamiętam, jak skompilowałem biblioteki Arduino. Ze źródłem Arduino są wymienione pliki źródłowe i takie, ale nie ma pliku makefile (który widzę) do faktycznego zbudowania biblioteki. Nie dbam o zbudowanie IDE, chcę tylko bibliotekę w formacie binarnym i pliki nagłówkowe, których potrzebuję. Czy jest na to jakaś dokumentacja?
Nie chcę używać Arduino IDE, wolę używać własnego edytora tekstu i makefile.
Odpowiedzi:
Stworzyłem mały projekt z niestandardowym systemem kompilacji (używając Ruby), który sprawia, że jest to dość łatwe bez konieczności instalowania Arduino IDE. Zasadniczo wykorzystuje szablon Makefile i skrypt ruby, aby kompilacja bibliotek Arduino była wyjątkowo łatwa. Możesz to zobaczyć na https://github.com/Earlz/make-wiring
Pozostawiam jednak starą odpowiedź tutaj, aby uzyskać informacje na temat rozwijania własnej. Jest to jednak dość kłopotliwe i denerwujące:
Kierunki:
hardware/arduino/cores/arduino
do nowego katalogu, który będę określał jako arduino_buildpins_arduino.h
plik z dowolnego wariantu Arduino z twojegohardware/arduino/variants
(sprawdź deski.txt, jeśli nie jesteś pewien) do arduino_build.
A potem po prostu biegnij
A potem, aby skorzystać ze skompilowanych bibliotek, możesz użyć prostego makefile takiego jak ten:
Ponadto, jeśli spróbujesz skompilować biblioteki
libraries/
, pojawi się błąd linkera, jeśli nie zrobisz rzeczy we właściwej kolejności. Na przykład musiałem to zrobić, aby użyć SoftwareSerial:-larduino
Musi być ostatnim biblioteki w wierszu poleceńW każdym razie był to dla mnie dość łatwy sposób. Gdy pojawią się przyszłe wersje Ardunio, ten plik makefile powinien być dość przyszłościowy, wymagając tylko kilku modyfikacji OBJS i HDRS. Ponadto ten plik makefile powinien współpracować zarówno z marką BSD, jak i GNU
Zobacz także nieco zmodyfikowaną wersję tej odpowiedzi na moim blogu z już skompilowanym plikiem binarnym biblioteki (skompilowanym przy użyciu „standardowego” pliku pin_arduino.h).
** EDYCJA **
Odkryłem, że dodanie następujących flag optymalizacji kompilatora zarówno do pliku Makefile budującego bibliotekę, jak i do każdego pliku Makefile projektu znacznie zmniejsza rozmiar końcowego skompilowanego pliku binarnego. To sprawia, że końcowy rozmiar binarny jest porównywalny z rozmiarem IDE.
.
Zatem dla makefile kompilacji biblioteki:
oraz dla każdego makefile projektu:
.
Patrz: http://arduino.cc/forum/index.php?topic=153186.0
źródło
Jeśli chcesz użyć Arduino IDE raz (lub raz na urządzenie), jest to najprostszy sposób na zbudowanie biblioteki statycznej, a także uzyskanie źródeł biblioteki. Następnie możesz użyć dowolnych narzędzi programistycznych, które Ci odpowiadają.
W tym artykule Arduino (napisanym dla użytkowników przechodzących do środowiska Eclipse IDE) opisano budowanie biblioteki Arduino poprzez skompilowanie szkicu z Arduino IDE i pobranie biblioteki z tymczasowego katalogu Arduino. Przewiń w dół około 1/4 strony do sekcji
źródło
Jeśli potrzebujesz tylko systemu kompilacji, który może również pilotować programator mikrokontrolera, platformio jest Twoim przyjacielem.
źródło