Saya baru-baru memulai proyek baru menggunakan Arduino saya yang telah mengumpulkan debu untuk sementara waktu. Seiring dengan papan fisik mengumpulkan debu, begitu juga salinan avr-gcc dan perpustakaan Arduino saya. Saya dapat mengelola pembaruan avr-gcc, tetapi saya tidak ingat bagaimana saya mengkompilasi perpustakaan Arduino. Dengan sumber Arduino, ada daftar file sumber dan semacamnya, tetapi tidak ada makefile (yang bisa saya lihat) untuk benar-benar membangun perpustakaan. Saya tidak peduli tentang membangun IDE, saya hanya ingin perpustakaan dalam format biner dan file header yang saya perlukan. Apakah ada dokumentasi atau semacamnya untuk melakukan ini?
Saya tidak ingin menggunakan Arduino IDE, saya lebih suka menggunakan editor teks saya sendiri dan makefile.
Jawaban:
Saya telah membuat proyek kecil dengan sistem build khusus (menggunakan Ruby) yang membuat ini sangat mudah tanpa harus menginstal IDE Arduino. Pada dasarnya, ia menggunakan templat Makefile, dan skrip ruby untuk membuat kompilasi pustaka Arduino menjadi sangat mudah. Anda dapat melihatnya di https://github.com/Earlz/make-wiring
Namun, saya meninggalkan jawaban lama di sini untuk informasi tentang menggulirkan jawaban Anda sendiri. Ini cukup rumit dan menjengkelkan:
Petunjuk arah:
hardware/arduino/cores/arduino
ke direktori baru yang saya sebut arduino_buildpins_arduino.h
file dari varian Arduino mana pun milik Andahardware/arduino/variants
(centang boards.txt jika Anda tidak yakin) ke arduino_build.
Dan kemudian jalankan
Dan kemudian untuk menggunakan perpustakaan yang dikompilasi dan semacamnya, Anda dapat menggunakan makefile sederhana seperti ini:
Juga, jika Anda mencoba mengkompilasi perpustakaan di
libraries/
Anda akan mendapatkan kesalahan linker jika Anda tidak melakukan hal-hal dalam urutan yang benar. Sebagai contoh, saya harus melakukan ini untuk menggunakan SoftwareSerial:Itu
-larduino
harus menjadi perpustakaan terakhir di baris perintahBagaimanapun, ini adalah cara yang cukup mudah untuk mengkompilasinya untuk saya. Ketika versi masa depan dari Ardunio keluar, makefile ini harus cukup tahan di masa depan, hanya membutuhkan beberapa modifikasi untuk OBJS dan HDRS. Juga, makefile ini harus bekerja dengan BSD make dan GNU make
Lihat juga versi yang sedikit dimodifikasi dari jawaban ini di blog saya dengan biner perpustakaan yang sudah dikompilasi (dikompilasi menggunakan pin_arduino.h "standar").
** EDIT **
Saya menemukan bahwa menambahkan flag pengoptimalan kompiler berikut ke Makefile gedung perpustakaan dan setiap proyek individu Makefile sangat mengurangi ukuran biner akhir yang dikompilasi. Ini membuat ukuran biner akhir sebanding dengan IDE.
.
Jadi, untuk perpustakaan build makefile:
dan, untuk setiap makefile proyek:
.
Ref: http://arduino.cc/forum/index.php?topic=153186.0
sumber
Jika Anda ingin menggunakan Arduino IDE sekali (atau sekali per jenis perangkat), ini adalah cara termudah untuk membangun pustaka statis, serta mendapatkan sumber pustaka. Setelah itu Anda dapat menggunakan alat pengembangan apa pun yang cocok untuk Anda.
Ini artikel Arduino (ditulis untuk pengguna pindah ke Eclipse IDE) menjelaskan membangun perpustakaan Arduino dengan menyusun sketsa dengan Arduino IDE dan mengambil perpustakaan dari direktori sementara Arduino ini. Gulir ke bawah sekitar 1/4 halaman ke bagian
sumber
Jika Anda hanya membutuhkan sistem build yang juga dapat mengemudikan programmer mikrokontroler Anda, platformio adalah teman Anda.
sumber