avr 运行 linux,我的AVR故事:linux下开发AVR

学习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的配置文件vimrcsudo vim /etc/vim/vimrc在最下面添加如下三行set number      显示行号set autoindent    自动缩进set cindent 针对C的自动缩进

21603a8b2bfc3eb5fdacc2e00f6d583b.png

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

6b30c97cd49c0bc6ae6030ad880471d7.png

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

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

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

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

21d20d604defe3736774ade331168931.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值