Senin, 04 November 2013

Mengkompilasi program c dengan avr-gcc

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

  • -mmcu, memberitahu compiler yang mikrokontroler AVR kode sedang dikompilasi untuk. Jika Anda tidak menggunakan ATmega328P maka Anda akan perlu untuk mengubahnya ke AVR yang Anda gunakan.
  • -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

  • -j menentukan Bagian memori untuk menyalin dari file ELF. Hal ini digunakan dua kali, sekali untuk menyalin bagian teks. Dan sekali untuk bagian data.. Bagian teks. Berisi petunjuk mesin yang membentuk program. Bagian data. Berisi berbagai data statis digunakan dalam program.
  • -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:

avrdude -p m328p -c usbtiny -e -U flash:w:blink.hex

  • -p menentukan AVR nomor bagian mikrokontroler yang diprogram. Jika Anda tidak menggunakan ATmega328P maka Anda akan perlu menentukan AVR yang Anda gunakan.
  • -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