|
首先安裝: sudo yum install gcc sudo yum install avrdude sudo yum install avr-gcc sudo yum install binutils sudo yum install avr-libc
我安裝的版本是: Package gcc-4.8.1-1.fc19.x86_64 already installed and latest version Package avrdude-5.11.1-4.fc19.x86_64 already installed and latest version Package avr-gcc-4.7.3-0.1.fc19.x86_64 already installed and latest version Package binutils-2.23.52.0.1-9.fc19.x86_64 already installed and latest version Package avr-libc-1.8.0-5.fc19.noarch already installed and latest version
[octopus@pc3 ~]$ sudo yum install gcc Loaded plugins: langpacks, refresh-packagekit Package gcc-4.8.1-1.fc19.x86_64 already installed and latest version Nothing to do [octopus@pc3 ~]$ sudo yum install avrdude Loaded plugins: langpacks, refresh-packagekit Package avrdude-5.11.1-4.fc19.x86_64 already installed and latest version Nothing to do [octopus@pc3 ~]$ sudo yum install avr-gcc Loaded plugins: langpacks, refresh-packagekit Package avr-gcc-4.7.3-0.1.fc19.x86_64 already installed and latest version Nothing to do [octopus@pc3 ~]$ sudo yum install binutils Loaded plugins: langpacks, refresh-packagekit Package binutils-2.23.52.0.1-9.fc19.x86_64 already installed and latest version Nothing to do [octopus@pc3 ~]$ sudo yum install avr-libc Loaded plugins: langpacks, refresh-packagekit Package avr-libc-1.8.0-5.fc19.noarch already installed and latest version Nothing to do [octopus@pc3 ~]$
下面的程序引用的文件是avr/io.h,如果文件不存在就檢查一下avr-libc是否安裝好,我用的系統是fedora19
|
|
【示常式序】 【demo1.c】 #include <avr/io.h>
void main(void) { unsigned char i,j,k=0; DDRB=PORTB=0xff; while (1) { PORTB=~PORTB; //if (PINB&BIT(0)) // PORTB&=~BIT(0); //else // PORTB|=BIT(0); for (i=0;i<255;i++) for (j=0;j<255;j++) for (k=0;k<13;k++); } }
該程序可以使PB口上的LED閃爍起來,時間大約是一秒(很不精確)。
|
|
【Makefile】 demo: demo1.c avr-gcc -mmcu=atmega16 -c demo1.c avr-gcc -mmcu=atmega16 -o demo1.elf demo1.o avr-objcopy -j .text -j .data -O ihex demo1.elf demo1.hex sudo avrdude -p m48 -c usbasp -e -U flash:w:demo1.hex -F
|
|
然後插上USBAsp下載器,輸入make就可以編譯並下載了哦
|
|
[octopus@pc3 t1]$ make avr-gcc -mmcu=atmega16 -c demo1.c avr-gcc -mmcu=atmega16 -o demo1.elf demo1.o avr-objcopy -j .text -j .data -O ihex demo1.elf demo1.hex sudo avrdude -p m48 -c usbasp -e -U flash:w:demo1.hex -F [sudo] password for octopus:
avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9403 avrdude: Expected signature for ATMEGA48 is 1E 92 05 avrdude: erasing chip avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: reading input file "demo1.hex" avrdude: input file demo1.hex auto detected as Intel Hex avrdude: writing flash (212 bytes):
Writing | ################################################## | 100% 0.13s
avrdude: 212 bytes of flash written avrdude: verifying flash memory against demo1.hex: avrdude: load data flash data from input file demo1.hex: avrdude: input file demo1.hex auto detected as Intel Hex avrdude: input file demo1.hex contains 212 bytes avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.06s
avrdude: verifying ... avrdude: 212 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
[octopus@pc3 t1]$
|