"); //-->
1。安装avr的编译环境
sudo apt-get install gcc-avr binutils-avr avrdude avr-libc
2. 安装下载软件avrdude
sudo apt-get install avrdude
////////////////////////////////////////////////////////////////////
测试文件
/////////////////////////////////////////////////////////////////
///////////其中main.c 简单 有点avr基础就明白,让灯闪//////////////////////////////
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
unsigned char i;
DDRC = 0xff;
i = 0x55;
while (1)
{
PORTC = i;
_delay_ms(500);
PORTC = ~i;
_delay_ms(500);
}
return 0;
}
//////////////////////////////////////////////////
解压后 用命令行终端进入
文件列表如下:
输入命令make
-------- begin --------
avr-gcc (GCC) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: main.c
avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=3686400UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c -o main.o
Linking: main.elf
avr-gcc -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=3686400UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -Wundef -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref -lm
Creating load file for Flash: main.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock main.elf main.hex
Creating load file for EEPROM: main.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0
Creating Extended Listing: main.lss
avr-objdump -h -S -z main.elf > main.lss
Creating Symbol Table: main.sym
avr-nm -n main.elf > main.sym
Size after:
AVR Memory Usage
----------------
Device: atmega16
Program: 196 bytes (1.2% Full)
(.text + .data + .bootloader)
Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
-------- end --------
文件列表:
其中main.hex为烧写文件 main.eep为eeprom文件.
/////////////////////////////////////////////////////////////////////////////////////
如果输入命令make clean
就只是剩下原先两个文件.
///////////////////////////////这儿值得注意的是:特别是windows转linux学习的菜鸟(我是这样),前面没有啥问题:就是怎么将程序下载到avr单片机
我以avrisp下载线为例子
输入make program 则为下载程序到单片机命令,其中怎么实现的呢?
在makefile里面 可以查找到如下:
#AVRDUDE_PROGRAMMER = pony-stk200
AVRDUDE_PROGRAMMER = stk500V2
其中#后面表示注释语句,则pony-stk200和stk500V2表示下载线型号,我用avrisp则是对应stk500V2,要是并口下载线应该是pony-stk200了吧
#AVRDUDE_PORT = /dev/parport0
AVRDUDE_PORT = /dev/ttyUSB0
如果是并口 则要指明是哪个口“parport0”表示并口1吧,具体没有验证(我的机子没有并口)
ttyUSB0指的是usb转串口0号,不想windows下为串口3或者串口几。
如果是电脑自己带的串口则是ttyS0,ttyS1,ttyS2,ttyS3于windows对应为com1,com2,com3,com4
///////////////////////////////////////////////////////////////////////////////////////
至于makefile文件 我用winavr(windows下的)编译的makefile在这儿就能用,这儿有个自动makefile生成文件在ouravr上,记不得网址了.
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。