Saya ingin kompilasi saya untuk mengecualikan beberapa kode tergantung pada ruang flash / program yang tersedia. Untuk digunakan dalam kode demo perpustakaan yang saya dukung. Sedangkan solusi saya saat ini adalah menggunakan # jika jenis prosesor. Tetapi saya ingin menjadi lebih umum dan tidak harus menentukan semua berbagai chip. Alih-alih akan lebih baik jika ada konstanta pra-prosesor yang menyatakan ukuran yang tersedia.
Di mana saya tidak cukup fasih dalam gcc dan atau avr-gcc saya mungkin berharap untuk menemukan beberapa konstanta yang sama dengan yang mendefinisikan awal dan akhir heap.
Contoh kasus. Apakah itu baik UNO dan Leo memiliki 32K Flash. Tetapi perpustakaan inti Leo menggunakan 4K untuk dukungan USB, sehingga hanya tersedia 28K. Demo Library saya hampir mencapai maksimum pada UNO dan saya ingin memangkas secara otomatis berdasarkan ruang program yang tersedia.
sumber
Jawaban:
Temukan
io__.h
file untuk mikrokontroler Anda, di Linux itu terletak di/usr/lib/avr/include/avr
, pada Windows itu akan berada di lokasi yang agak mirip.Gulir ke bawah ke bagian yang mengatakan
/* Constants */
. Ada beberapa makro menarik yang didefinisikan di sana,FLASHEND
yang harus Anda minati. Anda dapat menggunakannya misalnya sebagai berikut:sumber