在树莓派raspberry上搭建avr单片机开发环境

之前开发avr单片机是一直在ubuntu下开发的,最近买了新的树莓派2,发现性能也不错,加上显示器就是一台很实用的linux电脑了,于是决定在树莓派上搭建开发avr单片机环境。avr在linux下的开发靠的主要是avr-gcc以及avrdude ,树莓派采用的Raspbian系统是基于debian的,系统源中有很丰富的软件包,所以总体配置还是比较简单。

个人原创,版权所有,转载请著名原文出处,并保留原文链接:

http://www.embbnux.com/2015/04/20/building_avr_mcu_development_on_raspberry_pi/

一 编译工具AVR-GCC的安装:

我用的是树莓派官方的debian系统wheezy版本的,这里直接安装wheezy下的avr gcc是有问题的,因为这个版本的avr gcc 是4.7版本的,存在一些bug,当你的固件大于8K的时候会报错如下:

relocation truncated to fit: R_AVR_13_PCREL

所以我们这边需要安装4.8版本的avr-gcc

安装步骤主要参考(Installing avr-gcc 4.8.1 and Arduino IDE 1.6 on Raspberry Pi):

先更新下软件包

sudo apt-get update
sudo apt-get upgrade

编辑软件源文件/etc/apt/sources.list,添加下面的源

#sudo vim /etc/apt/sources.list 
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://archive.raspbian.org/raspbian jessie main contrib non-free rpi

配置源优先级,编辑文件/etc/apt/preferences,添加下面的语句

Package: *
Pin: release n=wheezy
Pin-Priority: 900

Package: *
Pin: release n=jessie
Pin-Priority: 300
 
Package: *
Pin: release o=Raspbian
Pin-Priority: -10

最后更新安装:

sudo apt-get update
sudo apt-get -t jessie install gcc-avr avr-libc
avr-gcc -v
#Using built-in specs.
#COLLECT_GCC=avr-gcc
#COLLECT_LTO_WRAPPER=/usr/lib/gcc/avr/4.8.1/lto-wrapper
#Target: avr
#Configured with: ../src/configure -v --enable-languages=c,c++ --prefix=/usr/lib --infodir=/usr/share/info --mandir=/usr/share/man --bindir=/usr/bin --libexecdir=/usr/lib --libdir=/usr/lib --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-libssp --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=avr
#Thread model: single
#gcc version 4.8.1 (GCC)

可以看到安装的是4.8.1版本的avr-gcc

二 下载工具AVRDUDUE的安装:

avrdude这个工具主要是用来下载的的,它支持很多下载工具,从最便宜的usbasp到贵的avrisp2都是支持的,树莓派上更可以直接用gpio中的spi接口来烧写单片机。

安装:

sudo apt-get -t jessie install avrdude

很简单就安装好了。

avr gcc与avrdude的使用可以看我之前的博客: 建立linux下avr单片机开发环境

树莓派还可以直接用spi接口烧写avr单片机,这个在以后的博客会介绍。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload the CAPTCHA.

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据