微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Ubuntu上AVR单片机开发环境设置

Ubuntu上AVR单片机开发环境设置

时间:11-19 来源:互联网 点击:
操作系统:ubuntu 13.04(32 bits)

AVR单片机:ATmega644pa

首先要明确,我们在Ubuntu(或者Linux)上开发AVR单片机应包括两大部分:

程序编译、程序下载。

环境布置:

程序编译使用Linux下的编译器——avr-gcc,通过以下指令安装:
sudo apt-get install gcc-avr   #这是avr的交叉编译器

sudo apt-get install avr-libc  #这是编译要用的库

另外还有一个工具,目前感觉没什么用,先记下来
sudo apt-get install gdb-avr   #gdb反向调试工具,反汇编

程序的下载使用avrdude,安装命令:

sudo apt-get install avrdude


程序的编译和下载步骤

第一步:编译程序

avr-gcc -mmcu=atmega644p -Wall -Os -o main.o main.c

第二步:到HEX文件里面

avr-objcopy -j .text -j .data -O ihex  main.o main.hex

至于这一步到底做了什么,我也只知道大概是把 .o 文件中的特定部分(例如 .text 和 .data段)

到 .hex 文件中。

详见 avr-objcopy --help 和 readelf -a main.o

第三步:下载程序到单片机


sudo avrdude -p m644p -c usbasp -e -U flash:w:main.hex


其中
-p 表示选择芯片,例如m644p
-c 选择下载器,例如usbasp
-e 表示烧录前清空
-U 表示存储器操作类型,使用方式:-U memtype:op:filename[:format]

详见 man avrdude

另外,有时我们还需要读取或者写入单片机的熔丝位(熔丝高位:hfuse;熔丝低位:lfuse;熔丝扩展位:efuse)

可以通过以下命令得到

读取熔丝高位

sudo avrdude -p m644p -c usbasp -e -U hfuse:r:hfuse.hex:h

写熔丝位:

sudo avrdude -p m644p -c usbasp -e -U hfuse:w:0xde:m

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top