Kompilasi
Program C
Program C harus dikompilasi menjadi HEX Intel Format berkas. Ini adalah format yang dilewatkan ke AVRDUDE yang memberitahu programmer AVR apa untuk program ke mikrokontroler. File HEX dibuat dalam dua langkah.
Pertama, AVR-gcc akan digunakan untuk menyusun program blink.c C menjadi ELF biner (executable dan Format Linkable) file objek. Ini file baru akan diberi nama blink.elf.
avr-gcc -mmcu=atmega328p -Wall -Os -o blink.elf blink.c
- -Wall ternyata pada semua peringatan compiler yang wajar yang akan membantu memastikan bahwa Anda sedang menulis kode yang baik. Setiap kali Anda melihat peringatan Anda akan ingin menyelidiki apa artinya.
- -Os adalah bendera optimasi yang memberitahu compiler untuk mengoptimalkan kode untuk pemanfaatan ruang yang efisien.
- -o argumen menentukan blink.elf sebagai nama file output.
Selanjutnya, AVR-objcopy salinan bagian
tertentu dari data biner dari file blink.elf ke format file Intel HEX
baru. File baru akan diberi nama blink.hex.
avr-objcopy -j .text -j .data -O ihex blink.elf blink.hex
- -O opsi ihex menentukan Intel HEX sebagai format output.
- blink.elf dilewatkan sebagai file input dan blink.hex ditetapkan sebagai output file.
Contoh
Program:
#define F_CPU 11059200UL
#include <avr/io.h>
#include <util/delay.h>
int main (void){
DDRB = 0xFF;
while(1){
PORTB =0xFF;
_delay_ms(500);
PORTB =0xFF;
_delay_ms(500);
}
}
Pemrograman
Mikrokontroler AVR
Sekarang untuk saat kebenaran. File blink.hex sekarang akan diprogram ke dalam mikrokontroler menggunakan program AVRDUDE. Pastikan programmer AVR terhubung ke sirkuit dan ke komputer Anda dan bahwa rangkaian memiliki kekuasaan. Kemudian Anda dapat menjalankan perintah AVRDUDE:
Sekarang untuk saat kebenaran. File blink.hex sekarang akan diprogram ke dalam mikrokontroler menggunakan program AVRDUDE. Pastikan programmer AVR terhubung ke sirkuit dan ke komputer Anda dan bahwa rangkaian memiliki kekuasaan. Kemudian Anda dapat menjalankan perintah AVRDUDE:
avrdude -p m328p -c usbtiny -e -U flash:w:blink.hex
- -c menentukan programmer AVR yang Anda gunakan. Jika Anda tidak menggunakan USBtinyISP maka Anda akan perlu menentukan programmer AVR yang Anda gunakan.
- -e menghapus chip sebelum menulis konten baru
- -U Flash: w: blink.hex melakukan operasi memori: Flash adalah jenis memori, w adalah untuk "menulis" operasi, dan blink.hex adalah nama file untuk menulis. Dengan kata lain, "tulis blink.hex ke memori flash".
Tidak ada komentar:
Posting Komentar