搜索
bottom↓
回复: 35

linux下的avr gcc 编程环境安装(fc6版)

[复制链接]

出0入0汤圆

发表于 2007-8-31 21:09:43 | 显示全部楼层 |阅读模式
所 需 要 的 安 装 文 件 在 下 面            



1.安装binutils



文件:binutils-2.17.50.0.16.tar.tar



tar -xvf binutils-2.17.50.0.16.tar.tar



cd binutils-2.17.50.0.16



./configure --target=avr --prefix=/usr/local/atmel



make



make install



添加 /usr/local/atmel/lib 到 /etc/ld.so.conf文件中



添加 export PATH=/usr/local/atmel/bin:${PATH} 到 /root/.bashrc





2.安装avr-gcc编译器



文件:gcc-core-4.1.1.tar.tar



tar -xvf gcc-core-4.1.1.tar.tar



cd gcc-4.1.1



./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c



make

******* 失败 ********



文件:gcc-core-3.4.2.tar.bz2



bunzip2 gcc-core-3.4.2.tar.bz2



tar xvf gcc-core-3.4.2.tar



cd gcc-3.4.2



./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c



make

make install



3.安装avr c语言库



文件:avr-libc-1.4.6.tar.tar



设置一些环境变量(bash语法):



export CC=avr-gcc



export AS=avr-as



export AR=avr-ar



export RANLIB=avr-ranlib



export PATH=/usr/local/atmel/bin:${PATH}



tar xvf avr-libc-1.4.6.tar.tar



cd avr-libc-1.4.6



./configure --prefix=/usr/local/atmel/avr --target=avr --enable-languages=c --host=avr



make



make install



4.安装UISP编程器



文件:uisp-20050207.tar.gz



tar -zxvf uisp-20050207.tar.gz



cd uisp-20050207

make  //出错了,继续



cd src



vi config.h



//命令状态下输入 /rpl_malloc



//将 src/config.h文件中的 #define malloc rpl_malloc 注释掉



cd ..



./configure



make



cp src/uisp /usr/local/atmel/bin





5.检查打印口模块



lsmod | grep parport_pc



lsmod | grep ppdev



lsmod | grep parport



如果存在则有名字输出,否则没有任何信息



lsmod | grep parport_pc则出现



parport_pc       31205  1



parport          40841  2 parport_pc,1p



而lsmod | grep ppdev则没有任何信息出现,说明还缺少了ppdev模块



所以要将ppdev模块载入,如果其他2个模块类似



modprobe ppdev



/////////////////////////////////////////////////////////////



//下次运行方便, 将上面的命令添加到/etc/rc.d/rc.local



并更改ppdev的权限 chmod 666 /dev/parport0



////////// ******* 安装完成 ********** ////////////////////

////////// ******* 安装完成 ********** ////////////////////

////////// ******* 安装完成 ********** ////////////////////

////////// ******* 安装完成 ********** ////////////////////

////////// ******* 安装完成 ********** ////////////////////



测试 avrledtest 程序



文件: avrledtest-0.1.tar.tar



tar xvf avrledtest-0.1.tar.tar



cd avrledtest-0.1



make //出错了 io.h没有找到



编辑 Makefile 文件,在CFLAGS之后加上头文件的搜索路径和库的搜索路径



vi Makefile



-I/usr/local/atmel/avr/avr/include -B/usr/local/atmel/avr/avr/lib



:wq 保存退出



编辑 avrledtest.c 文件



vi avrledtest.c



修改头文件



#include <avr/io.h>

#include <compat/deprecated.h>



:wq保存退出



make



生成了avrledtest.hex文件



make load 即可进行下载



///////////////////////////////////////////////



以下是Makefile 文件



# makefile, written by guido socher

TARGET=PaoMaLed

MCU=atmega8

CC=avr-gcc

OBJCOPY=avr-objcopy

# optimize for size:

CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues -I/usr/local/atmel/avr/avr/include -B/usr/local/atmel/avr/avr/lib

#-------------------

all: $(TARGET).hex

#-------------------

$(TARGET).hex : $(TARGET).out

        $(OBJCOPY) -R .eeprom -O ihex $(TARGET).out $(TARGET).hex

$(TARGET).out : $(TARGET).o

        $(CC) $(CFLAGS) -o $(TARGET).out -Wl,-Map,$(TARGET).map $(TARGET).o

$(TARGET).o : $(TARGET).c

        $(CC) $(CFLAGS) -Os -c $(TARGET).c

# you need to erase first before loading the program.

# load (program) the software into the eeprom:

load: $(TARGET).hex

        uisp -dlpt=/dev/parport0 --erase  -dprog=stk200

        sleep 1

        uisp -dlpt=/dev/parport0 --upload if=$(TARGET).hex -dprog=stk200  -v=3 --hash=32

# here is a pre-compiled version in case you have trouble with

# your development environment

load_pre: $(TARGET)_pre.hex

        uisp -dlpt=/dev/parport0 --erase  -dprog=stk200

        uisp -dlpt=/dev/parport0 --upload if=$(TARGET)_pre.hex -dprog=stk200 -dno-poll -v=3 --hash=32

#-------------------

clean:

        rm -f *.o *.map *.out

#-------------------

出0入0汤圆

 楼主| 发表于 2007-8-31 21:11:30 | 显示全部楼层
文件下载

点击此处下载armok01168877.rar

下载后改名为  binutils-2.17.50.0.16.tar.tar



点击此处下载armok01168879.rar

下载后改名为 avrgcc-core-3.4.2.bz2



点击此处下载armok01168881.rar

下载后改名为  avr-libc-1.4.6.tar.tar



点击此处下载armok01168882.rar

下载后改名为  uisp-20050207.tar.gz



点击此处下载armok01168883.rar

下载后改名为 avrledtest-0.1.tar.tar



点击此处下载armok01168884.rar

下载后改名为 avr-libc-manpages-1.4.6.tar.tar



点击此处下载armok01168885.rar

下载后改名为 avr-libc-user-manual-1.4.6.tar.tar

出0入0汤圆

 楼主| 发表于 2007-8-31 21:29:46 | 显示全部楼层
我的fc6 gnome桌面(原版的,也就是他本来的桌面,现在我也是在这里上传文件和发帖)





我的机器配置:

CPU:  P3-866

内存;   256M  (太少了装不上,就算装上了,也很不爽)

硬盘:   80g

显卡:   32m  mx-200

主板:   810集成声卡

网卡:   普通100m

出0入0汤圆

 楼主| 发表于 2007-8-31 21:47:40 | 显示全部楼层
再看看烧写atmega8的情况

出0入0汤圆

发表于 2007-8-31 21:56:22 | 显示全部楼层
第一次看到用linux开发avr的高人,真猛啊

出0入0汤圆

 楼主| 发表于 2007-9-1 09:03:43 | 显示全部楼层
兄弟,以前论坛就有人写过一个这样得帖子,我只是把它搬到fc6下,搞了2天,才装成了,

尽量把过程作的详细一点,方便要"耍酷"的兄弟能在linux下用用,哈哈



因为fc6比以前的linux都用的爽一些,速度方面可以和xp做比较了。

(当然,只是可以做比较,以前老是听说什么什么linux可以和xp那么快了,一装上去就慢的要死,

  fc6问题也比较少,用起来也比较得快)

出0入0汤圆

发表于 2007-9-1 12:56:14 | 显示全部楼层
呵呵,好呀,看来有越来越多的人可以一起讨论linux+avr了。

不过用linux绝对不是“耍酷”,确实挺不错的,又免费。

出0入4汤圆

发表于 2007-9-1 13:43:32 | 显示全部楼层
从 OS 到 toolchain,全部用自由、开源软件!



酷极了...

出0入0汤圆

发表于 2007-9-1 20:46:02 | 显示全部楼层
在ubuntu下面安装AVR环境就很方便了.. 我觉得linux还是用ubuntu发行版好一点. 安装软件都不用去考虑依赖关系,系统都自动检测好并帮你安装. 界面也做得不错.

我以前是从redhat5.0一直用过来的, 用到9.0后来又到fc,之后就转回ubuntu了.

出0入0汤圆

发表于 2007-9-1 22:19:06 | 显示全部楼层
Linux最令人心碎的地方,就是你要应付无休止的安装,配置,依赖关系----无论是软件还是硬件。也许linux做web服务器,防火墙,路由器很不错,但你要用来做点儿其他的,似乎很让人憔悴。



我对操作系统不感兴趣,也对软件或者硬件的配置细节也不感兴趣,我只想在我需要的领域,简简单单安装一个或者几个程序,然后,就开始我的工作----要达到这个理想,linux还有很长很长很长的路要走。

出0入0汤圆

发表于 2007-9-1 23:32:18 | 显示全部楼层
能不能说一下uisp 烧写程序时怎么设置熔丝?

出0入0汤圆

发表于 2007-9-1 23:34:36 | 显示全部楼层
路本来是不存在的 路很长,走的人多了就有路了

出0入0汤圆

发表于 2007-9-1 23:37:38 | 显示全部楼层
debian和ubuntu都好很多了,试试就知道了。

不过电脑只是个工具,什么平台只要能满足你的需要就可以了,linux在满足个人(我觉得应该说是中国人)日常使用方面作得越来越好了,所以可以考虑使用这个平台。

看似琐碎的设置可以让你了解到一些细节的东西,加深对计算机系统的理解,如果你是计算机行业的专业人员,我想这样对你有好处的。如果你不是主业人员,也许就用windows就可以了吧,毕竟可能一开始用的就是windows,可能都用了n年甚至n0年了,突然要改变许多操作习惯可能确实不划算,因为你已经有成熟的方法去解决遇到的问题,许多情况下可能并不需要学习新的方法。

其实主要是大家一开始就接触到了MS的东西,想想吧,从你接触电脑的第一天,你看到的可能就是windwos95、2000,甚至是windows3.1、MSDOS,对MS的一切是那样的熟悉,跟它不同的东西就会觉得不习惯、别扭,其实这个实际上还有许多操作系统,如果你是linux1.0->redhat3.0->redhat9->fedora一路走来,可能你一用MSwindows也是觉得别扭无比。

呵呵

出0入0汤圆

发表于 2007-9-1 23:44:32 | 显示全部楼层
为什么 linux要搞的那么复杂,不能象windows一样一个安装程序就可以了?

出0入0汤圆

发表于 2007-9-18 15:29:28 | 显示全部楼层
有点疑问,用uisp怎么设置晶振和融丝啊?

出0入0汤圆

发表于 2007-9-18 15:53:49 | 显示全部楼层
今天装了Linux,才发现Linux不怎么好用。在Linux下安装一个软件都很复杂,比Windows负责多了。。。

出0入0汤圆

发表于 2007-9-18 18:39:12 | 显示全部楼层
linux不是想像中难用的,大部分人对linux的理解都是n年前的概念~~

不过一些专用软件比较难高,前两天装quartus II 搞到差点吐血,想开了,装了个ise

出0入0汤圆

 楼主| 发表于 2007-9-19 08:10:46 | 显示全部楼层
uisp --help 看看帮助,里面有设置熔丝的选项,要自己研究一下

出0入0汤圆

 楼主| 发表于 2007-9-19 08:14:18 | 显示全部楼层
对于我们来说:
linux是用来学东西的。
windows是用来做东西的。

linux学好之后,也可以来做东西。灵活性很强,同样,操作设置也很比较复杂

出0入0汤圆

发表于 2007-9-19 08:21:54 | 显示全部楼层
好东西,先收藏
正用FC6

出0入0汤圆

 楼主| 发表于 2007-9-24 20:35:12 | 显示全部楼层
安装mfile

wish mfile.tcl 或者 wish8.4 mfile.tcl

出0入0汤圆

 楼主| 发表于 2007-9-24 20:54:37 | 显示全部楼层
以下是 从winavr下复制过来的Makefile
点击此处下载ourdev_174388.txt(文件大小:13K)
用的是avrdude
改名为Makefile

出0入0汤圆

 楼主| 发表于 2007-9-24 20:55:33 | 显示全部楼层
make program
avrdude -p atmega8 -P /dev/parport0 -c stk200    -U flash:w:MyClock.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "MyClock.hex"
avrdude: input file MyClock.hex auto detected as Intel Hex
avrdude: writing flash (2480 bytes):

Writing | ################################################## | 100% 1.59s

avrdude: 2480 bytes of flash written
avrdude: verifying flash memory against MyClock.hex:
avrdude: load data flash data from input file MyClock.hex:
avrdude: input file MyClock.hex auto detected as Intel Hex
avrdude: input file MyClock.hex contains 2480 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.35s

avrdude: verifying ...
avrdude: 2480 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

[root@localhost MyClock]#

出0入0汤圆

发表于 2007-9-24 21:27:48 | 显示全部楼层
binutils已有2.18版的了,GCC可以整个包一起下,不一定是core包,GCC4.2.1编译目标为AVR的编译器时,会把i686平台的AS文件拷贝来汇编的,所以make通不过,我后来使用binutils编译目标为AVR的AVR-AS文件拷贝到makeGCC时的文件夹下,并更名替换为AS,这样才顺利make.在Linux下,我可以随时享用最新的GCC编译器了.工程文件可以使用esclipse来管理,我使用esclipse后觉得,它比VC有过而无不及,只是占用的资源比较大,启动也慢.大家不妨试用一下,她是跨平台的,linux,windows等都支持,而且她是免费的,AVR32的IDE和NIOS-II的IDE都是使用的esclipse.

--自从我装上Fedora 7 ,我深深地爱上了那只企鹅!

出0入0汤圆

发表于 2007-9-24 22:26:51 | 显示全部楼层
在--prefix选项中,我使用usr/local即可,它会自动在local目录下在生成一个AVR文件夹,里面是编译好的编译器,还会在local/bin文件夹下拷贝一份与AVR文件夹下一样的文件,不过它会把这些文件全都添加前缀avr-,以免与i686平台的GCC同名。binutils也一样。

出0入70汤圆

发表于 2007-9-25 00:05:37 | 显示全部楼层
要学会利用工具,在Fedora下面直接用
yum install 软件包名称
就好。
我就是这样装上去的。
关于gcc-avr的仓库有不少,可以google一下

出0入0汤圆

发表于 2007-9-25 11:17:59 | 显示全部楼层
我用的red hat  9.0虚拟机,搞ARM9要用,就是虚拟机跑起来太慢了

出0入0汤圆

发表于 2007-9-26 00:44:37 | 显示全部楼层
26楼是正解,可以用

yum search avr 来搜索avr相关的包。

出0入0汤圆

发表于 2007-9-26 01:06:46 | 显示全部楼层
$ aptitude search avr
i   avr-libc                                        - Standard C library for Atmel AVR development            
p   avra                                            - Assembler for Atmel AVR microcontrollers                 
i   avrdude                                         - software for programming Atmel AVR microcontrollers      
i   avrdude-doc                                     - documentation for avrdude                                
p   avrp                                            - Programmer for Atmel AVR microcontrollers               
p   avrprog                                         - Programmer for Atmel AVR microcontrollers               
i   binutils-avr                                    - Binary utilities that support Atmel's AVR targets.      
v   c-compiler-avr                                  -                                                         
i   gcc-avr                                         - The GNU C compiler (cross compiler for avr)              
i   gdb-avr                                         - The GNU Debugger for avr                                 
p   simulavr                                        - Atmel AVR simulator     


不喜欢编译ah~~~

出0入0汤圆

发表于 2008-2-2 21:56:22 | 显示全部楼层
好帖!正想用linux学AVR

出0入0汤圆

发表于 2008-2-2 23:25:41 | 显示全部楼层
Fedora7,Fedora8下如果有网络的话,直接用
sudo yum install avr-gcc
就可以自动完装完成所需要的文件了,自己编译比较费心思,不过可以学到东西

出0入0汤圆

发表于 2008-4-15 18:01:35 | 显示全部楼层
PonyProg is a serial device programmer with a user friendly GUI framework available for Intel Linux and Windows. PonyProg's purpose is being able to read from and write to most serial devices.

At the moment it supports I&#178;C Bus, Microwire, SPI eeprom, the Atmel AVR, and Microchip PIC micro. Hardware programmer (SI-Prog) schematics are included.

出0入0汤圆

发表于 2008-4-15 18:01:50 | 显示全部楼层
website:http://linux.softpedia.com/get/Science/PonyProg-26834.shtml

出0入0汤圆

发表于 2010-4-24 13:02:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-14 07:02:40 | 显示全部楼层
回复【13楼】dx9782  TooHuman
为什么 linux要搞的那么复杂,不能象windows一样一个安装程序就可以了?
-----------------------------------------------------------------------

ING……现在Linux都有APT了。gcc-avr直接APT就可以了。只是你习惯windows罢啦~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-9-28 09:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表