Ubuntu linux 下玩AVR USBasp+Mega16
上网参考了一下其他人在Linux下玩AVR的方法,我想在这里总结Mark下,下次自己重装系统的时候可以看看。当然有很多人的弄得更好。1-----插上USBasp,查看是否已经识别
打开终端: 输入 lsusb
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521487.png
(原文件名:Screenshot-hexiongjun@hexiongjun-desktop: ~.png)
看到了Bus04中写着 Atmel Corp说明识别出来了
2------下载Hex文件的下载软件avudude
在终端输入 sudo apt-get install avrdude
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521489.JPG
(原文件名:CD9AC9003905E72991720E80EF43FE28.JPG)
按照它的建议 sudo apt-get install avrdude-doc
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521491.jpg
(原文件名:sendpix0.jpg)
安装好avrdude后下面安装编译软件gccavr。
3------sudo apt-get install gcc-avr
然后根据起提示按Y回车确定即可
4----- 开始写程序 大家可以用IDE 像CodeblocksEclipes之类的 当然也可以直接用文本编写软件写程序。下面 我用gedit写(当然也可以用vi 和其他的,个人习惯)
在终端中输入geditAvrInUbuntu.c 开始写代码:
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521501.png
(原文件名:Screenshot-AvrInUbuntu.c (~-avr-AvrInUbuntu) - gedit.png)
保存
5----- 开始编译 cd ~目录
avr-gcc -mmcu=atmega16 -Wall -Os -o AvrInUbuntu.o AvuInUbuntu.c
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521505.jpg
(原文件名:23.jpg)
-mmcu定义了目标CPU的类型,我用的是atmega16;-Os是优化选项,减少程序的大小
6 ---- 生成Hex
avr-objcopy -j .text -j .data -O ihex AvrInUbuntu.oAvrInUbuntu.hex
用ls命令 可以看到有hex了。
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521509.jpg
(原文件名:hex.jpg)
7 ------下载hex到单片机
sudo avrdude -p m16 -c usbasp -e -U flash:w:AvrInUbuntu.hex
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_521511.jpg
(原文件名:down.jpg) 直接读写USB接口,所以不给权限的话会提示找不到编程器,当然配置USB权限最好,这里暂时用sudo。avrdude的-p指定目标CPU,-c指定下载器,如果不知道所用的下载器是什么型号,敲avrdude -c会列出所有支持的下载器型号及其描述。-e即烧录前清空,-U参数指定刷写类型以及刷写文件 avr-gcc -mmcu=atmega16 -Wall -Os -o AvrInUbuntu.o AvuInUbuntu.c
这一句大家应该都明白 和gcc 是一样的
-mmcu= 是填写芯片类型
-Os 是优化选项
AvrInUbuntu.o AvuInUbuntu.c 的意思是将 AvuInUbuntu.c编译后输出文件名为 AvuInUbuntu.o的编译文件 多了一位li友,好啊。 我还是喜欢VI...... 学习了!感觉使用Geany这个工具写代码会比较好,编辑器下面就是终端,不用开两个窗口! 牛人真多啊!!! mark 正找这个东西哈, 顶了. 你是用哪个版本的Ubuntu ?我有并口的ISP,用什么软件? 我用的Ubuntu是9.10
如果是并口请下载安装 Uisp 和 Usbprog
你可以在终端中avrdude 回车
根据提示输入对应的选项 查看avrdude查看其支持的设备
我现在在Windows下 无法查看如果我没有记错的话 Avrdude是支持的ISP的
待我在Ubuntu环境下的时候我再确认一下 可以支持的,并口下载器使用 stk200 mark To
在 http://www.nongnu.org/avrdude/ 有avrdude的详细介绍
当然也可以直接在终端中输入 avrdude 回车或者看它的 man
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_522303.jpg
(原文件名:sendpix1.jpg)
上面写明了可以用简单的并口下载也就是STK200/300当然也支持更高的500 等等其他的
我想普通学生用的最多都支持的
但是下载的时候 用命令sudo avrdude -p m16 -c usbasp -e -U flash:w:AvrInUbuntu.hex中应该改变usbasp成相应的设备
如果用并口 还有一个软件是avrprog你可以到http://sourceforge.net/projects/avrprog/ 下载它是专门并口下载的 将windows下面的winavr 自动生成的makefile直接复制过去用嘛~~ 回复【14楼】Etual
将windows下面的winavr 自动生成的makefile直接复制过去用嘛~~
-----------------------------------------------------------------------
在 Linux/BSD 下也能自动生成 Makefile,用 Jörg Wunsch 写的 Mfile,用 wish 运行。 我使用ubuntu插上USBasp后,lsusb找不到设备, 娃哈哈哈,用 UBUNTU8.04 的飘过,等待 10.04 中~~~~ UBUNTU9.1已经很不错了呀! 用fedora的路过,支持一下 To【16楼】 lyping1987 甘立平:
如果是看不到设备 那请拔了重插如果还是不能发现设备 那么应该是USBASP的问题了
我的USBasp的固件时很古老的了 但是还是可以使用的
也不知道你的是怎样的
我还做了一个USBASP但是在能发现设备却不能当USBASP用 只能当做一个Mega8 最小系统玩了 发现已经有人写的很好了大家可以参考他们的
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1669108&bbs_page_no=1&search_mode=1&search_text=Ubuntu&bbs_id=1000
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=514645&bbs_page_no=1&bbs_id=1000 有空学习一下,我是用debian的。 COOL 很有用 马克一下 mark really good 支持下,学习了.纷乱的思路清晰了一些. 高手啊… mark 装了Ubuntu只会用来上网,向楼主学习! 正好要着linux下开发AVR的教程,多谢楼主了 狠狠的折腾了两天,摸到了一点门路,随手补充在这里。顺便完成审核的五篇帖子的任务(略蛋疼。。。)
楼主讲了编译的部分。我来补充一点调试的东西。其实也不是我原创。方便新手查询,节约时间。
传送门:
avr-gdb调试,7楼开始的方法比较方便
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=956563
avr-gdb调试需要elf文件。楼主没有江怎么生成。新手可以调用现成的makefile
http://www.ourdev.cn/guide_winavr_source_code_makefile.html
或者在编译时加入调试信息
avr-gcc -mmcu=atmega16 -Wall -Os -gdwarf-2 -c main.c
avr-gcc -mmcu=atmega16 -Wall -Os -gdwarf-2 -o main.elf main.o
另codeblocks是支持交叉编译的,ecplise不清楚。如果不是命令行控,codeblocks是个不错的选择。 ubuntu10.10+gvim+avrdude+avrgcc
感谢lz的资料 ubuntu 和 debian 都是好东西呀!!! 高手啊,学习下 必须mark啊,牛人 就没有鼠标点击就能下载的usbasp的UBUNTU软件吗。!
什么都要靠命令!{:huffy:}
页:
[1]