QQ373466062 发表于 2010-1-2 13:29:11

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)

QQ373466062 发表于 2010-1-2 15:06:38

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

QQ373466062 发表于 2010-1-2 15:10:05

avr-gcc -mmcu=atmega16 -Wall -Os -o AvrInUbuntu.o AvuInUbuntu.c
    这一句大家应该都明白   和gcc 是一样的   
      -mmcu= 是填写芯片类型
      -Os   是优化选项
      AvrInUbuntu.o AvuInUbuntu.c   的意思是将 AvuInUbuntu.c编译后输出文件名为 AvuInUbuntu.o的编译文件

sunliezhi 发表于 2010-1-2 23:49:42

多了一位li友,好啊。

thriller 发表于 2010-1-3 00:08:34

我还是喜欢VI......

lyping1987 发表于 2010-1-3 11:40:41

学习了!感觉使用Geany这个工具写代码会比较好,编辑器下面就是终端,不用开两个窗口!

XMLK 发表于 2010-1-3 12:22:03

牛人真多啊!!!

_yun_yun_ 发表于 2010-1-3 13:10:25

mark

hylpro 发表于 2010-1-3 13:31:07

正找这个东西哈, 顶了.

steel 发表于 2010-1-3 13:48:30

你是用哪个版本的Ubuntu ?我有并口的ISP,用什么软件?

QQ373466062 发表于 2010-1-3 13:54:49

我用的Ubuntu是9.10
   
   如果是并口请下载安装 Uisp 和 Usbprog   
   
   你可以在终端中avrdude 回车
   根据提示输入对应的选项 查看avrdude查看其支持的设备
   我现在在Windows下 无法查看如果我没有记错的话 Avrdude是支持的ISP的
   
    待我在Ubuntu环境下的时候我再确认一下

hualang0929 发表于 2010-1-3 14:56:35

可以支持的,并口下载器使用 stk200

wcm_e 发表于 2010-1-3 17:15:31

mark

QQ373466062 发表于 2010-1-4 00:08:00

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/ 下载它是专门并口下载的

Etual 发表于 2010-1-4 08:31:17

将windows下面的winavr 自动生成的makefile直接复制过去用嘛~~

atommann 发表于 2010-1-4 09:09:32

回复【14楼】Etual
将windows下面的winavr 自动生成的makefile直接复制过去用嘛~~
-----------------------------------------------------------------------

在 Linux/BSD 下也能自动生成 Makefile,用 Jörg Wunsch 写的 Mfile,用 wish 运行。

lyping1987 发表于 2010-1-4 16:06:23

我使用ubuntu插上USBasp后,lsusb找不到设备,

by886 发表于 2010-1-4 16:37:07

娃哈哈哈,用 UBUNTU8.04 的飘过,等待 10.04 中~~~~

lyping1987 发表于 2010-1-4 16:43:05

UBUNTU9.1已经很不错了呀!

demonhunter 发表于 2010-1-4 19:16:11

用fedora的路过,支持一下

QQ373466062 发表于 2010-1-4 20:19:27

To【16楼】 lyping1987 甘立平:
    如果是看不到设备 那请拔了重插如果还是不能发现设备 那么应该是USBASP的问题了
       我的USBasp的固件时很古老的了 但是还是可以使用的   
      也不知道你的是怎样的

    我还做了一个USBASP但是在能发现设备却不能当USBASP用 只能当做一个Mega8 最小系统玩了

QQ373466062 发表于 2010-1-4 20:24:31

发现已经有人写的很好了大家可以参考他们的
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

guiltcool 发表于 2010-1-5 11:48:15

有空学习一下,我是用debian的。

xxl88 发表于 2011-2-27 14:41:12

COOL

polar 发表于 2011-3-9 12:48:47

很有用 马克一下

guhenggao 发表于 2011-3-9 14:43:44

mark

xuanyuan_wk 发表于 2011-7-27 14:03:28

really good

zodiac1111 发表于 2011-11-27 16:30:10

支持下,学习了.纷乱的思路清晰了一些.

gloryzkl 发表于 2011-11-28 01:45:09

高手啊…

Garbage614 发表于 2011-11-28 10:07:02

mark

leexue 发表于 2011-12-7 11:17:49

装了Ubuntu只会用来上网,向楼主学习!

skt041959 发表于 2011-12-7 13:59:06

正好要着linux下开发AVR的教程,多谢楼主了

skt041959 发表于 2011-12-7 16:31:14

狠狠的折腾了两天,摸到了一点门路,随手补充在这里。顺便完成审核的五篇帖子的任务(略蛋疼。。。)

楼主讲了编译的部分。我来补充一点调试的东西。其实也不是我原创。方便新手查询,节约时间。

传送门:
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是个不错的选择。

Garbage614 发表于 2012-3-27 13:38:35

ubuntu10.10+gvim+avrdude+avrgcc
感谢lz的资料

fanmingming 发表于 2012-4-15 09:07:07

ubuntu 和 debian 都是好东西呀!!!

竹风xu 发表于 2012-10-11 18:48:19

高手啊,学习下

改版没改好 发表于 2012-10-13 13:58:28

必须mark啊,牛人

gprs08 发表于 2013-12-26 10:03:51

就没有鼠标点击就能下载的usbasp的UBUNTU软件吗。!
什么都要靠命令!{:huffy:}
页: [1]
查看完整版本: Ubuntu linux 下玩AVR USBasp+Mega16