[转]我的AVR故事:linux下开发AVR

来源:互联网 发布:淘宝3d打印价格 编辑:程序博客网 时间:2024/04/29 04:30
我的AVR故事:linux下开发AVR  2010-10-01 11:45
 加入收藏
  •  转发分享
     人人网
     开心网
     新浪微博
     搜狐博客
     百度收藏
     谷歌收藏
     qq书签
     豆瓣
     淘江湖
     Facebook
     Twitter
     Digg
     Yahoo!Bookmarks

原文地址:http://www.eefocus.com/guoleidadi/blog/10-10/196336_ce097.html

学习AVR有一个半月了,基本上算是入门了,今天突然想起被我遗忘很久的ubuntu,我在windows上面学习AVR时用的编译器是WINAVR,实 际上这个C编译器是从linux上面移植过来的。今天不如研究下在linux下开发AVR,从大一开始一直都觉得在linux下干活,是那么的酷!

再说,如果以后学ARM,linux是必须掌握的。

凭之前对的linux的知识累积,再加上google,需要我做的是:
1.首先是编译器,仍然是GCC,在新立得软件包找到gcc-avr,avr-libc,标记,安装。也可以 sudo apt-get install gcc-avr binutils-avr avr-libc。

2.文本编辑器,就用VIM吧,传说是大神级别的文本编辑器,很不幸,我还没领教过。同第一步一样,安装VIM。

sudo apt-get install vim

3.之后就是写程序,编译。生成hex文件。之后... ...问题来了,How to 下载捏?! As we konwn,我们的下载器所带的驱动都是用在那收费的MS的,google之,得到答案,直接安装下载器,解决一切。

sudo apt-get install avrdude

 

首先在VIM里写C程序,之前我们需要设置以下VIM,让他显示行号,进入VIM的配置文件vimrc
sudo vim /etc/vim/vimrc
在最下面添加如下三行
set number      显示行号
set autoindent    自动缩进
set cindent 针对C的自动缩进

随后 :wq 保存退出。
在自己的目录下建立一个文件夹,我把它命名为AVR,之后建立一个子文件夹,这次的实验是LED,就叫这个名吧,进入之后,鼠标右键,打开终端,进入VIM,先把要包含头文件写上,再写上主函数,
之后先保存一下,保存成C文件,这样就有语法高亮显示了。

编辑完毕,保存退出。
编译有很多方法,可以用gcc的命令行,实际上更多是用makefile,自己写的话对于初学者比较难,网上有一种方法采用TK什么的链接使用 WINAVR中的mfile。我在这里用的是投机取巧的方法,将winavr中自带的makefile复制过来,稍加修改,直接用,我个人的习惯是,每个 工程的主程序都命名为main.c,所以几乎是在不改变晶振频率的情况下,我根本不需要在makefile中做任何更改。如果更改的话,就用VIM打开作 相应的设置更改就可以了,It is very easy!
makefile复制到LED文件夹下,然后在中端中 make


这就算是完成了。
接下来下载程序,插上USB下载器,如果输入lsusb的话,这是可以看到计算机上所有的USB设备


看到没,第二行的那个就是我的下载器。VOTI usbasp

开烧: 

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

因为直接读写USB接口,所以不给权限的话会提示找不到编程器,当然配置USB权限最好,这里暂时用sudoavrdude-p指定目标 CPU-c指定下载器,如果不知道所用的下载器是什么型号,敲avrdude -c会列出所有支持的下载器型号及其描述。-e即烧录前清空,-U参数指定刷写类型以及刷写文件。

[PS:可参考virtualbox使用usb的配置,把当前用户加入usbfs组,就可以直接使用avrdude]

注意看上面烧录的速度,用过就知道瘟逗死垃圾了,我在linux下编译烧录都比瘟逗死下面快很多很多,有个1020倍的差距。

 

原创粉丝点击