armok 发表于 2004-12-13 17:00:19

armok 发表于 2004-12-13 17:01:06

leen 发表于 2004-12-13 17:06:41

我之前一直用汇编的,前一端时间一直苦于选择哪种C语言,现在好了,既然有人提出GCC,那我也来报个名跟着学吧!

pulan 发表于 2004-12-13 17:14:24

虽然俺是初学,还是要做一回跟屁股虫

polarisdll 发表于 2004-12-13 17:16:13

前段时间也决定转到GCC了,目前还是ICC和GCC一起用用,对GCC还是不甚熟悉

jeewood 发表于 2004-12-13 17:21:25

加我一个frezgo@msn.com

lanmp 发表于 2004-12-13 17:26:36

一直想推荐别人用WinAVR,不过看到阿莫说“如果你想在本网站能找到人交流,比如与我交流的话...”很有种威胁的语气就咽回去了。

ant. 发表于 2004-12-13 17:29:20

我用GCC有二年多了,当初好象PN还很简单,只好用UE。到现在还把它忽略。

这几天试试PN,发觉也不错。



用GCC,很多人害怕它的makefile,也有很多资料教你如何编辑它,理解它。开始我也这样做了。不过后来发觉,一般用途时,根本不用这么麻烦。最简单的是步骤是:

1)从WinAVR下直接Copy来了一个makefile;

2)打开makefile改型号;

3)当*.c文件增加时,再打开makefile增加*.c文件名。

其他的不动。

armok 发表于 2004-12-13 17:30:33

ant. 发表于 2004-12-13 17:40:13

另外用GCC还有个好处,GCC有很多其他编译器,例如ARM。

我曾经做个项目,涉及AVR与ARM,都用GCC编译,简单就象做一个程序一样。

Grant 发表于 2004-12-13 17:50:12

看了jeewood的文档,也禁不起诱惑,装了个WinAVR。



发现一个好玩的地方。我new个pj,发现在左边有一个clips的标签,点了一下,发现里面可以定做类似与模板的功能。

我在winavr按照目录下找到pn\clips\里面有四个文件,打开winavr.clips一看,呵呵,都在这里。这个文档竟然是用XML写的。



我自己加了几个函数,完全可以自己定做一些函数模板,可惜不支持中文,不过没关系。

下面是我改的



<?xml version="1.0"?>

<clips name="WinAVR">

        <clip name="Application"><![CDATA[

   

#include <avr/io.h>





static void avr_init(void);





int main(void)

{

    avr_init();

   

    for(;;)

    {

      // Tasks here.

      

    }

   

    return(0);

}







static void avr_init(void)

{

    // Initialize device here.

    |   -->这个符号表示函数出现时光标会,默认停在这里

   

    return;

}

   

        ]]>

    </clip>

        <clip name="Function"><![CDATA[

   

static void |(void)

{

}

   

        ]]>

    </clip>

   //---下面就是我加的啦,呵呵,看来以后可以定做自己函数--//

            <clip name="App_1"><![CDATA[

   

void |(void)

{

        //Add code

}

   

        ]]>

    </clip>

        <clip name="App_2"><![CDATA[

   

static void |(void)

{

}

   

        ]]>

    </clip>

        <clip name="App_3"><![CDATA[

   

void |(void)

{

}

   

        ]]>

    </clip>      

</clips>

armok 发表于 2004-12-13 17:53:40

bucker 发表于 2004-12-13 17:57:47

我也学一学吧,过去总是没有解决优化的问题,不知谁能叫一下怎样优化.

zieous 发表于 2004-12-13 17:58:01

hao

ant. 发表于 2004-12-13 18:03:10

AVR-GCC与AVR单片机的C语言开发 这本书广州有打折的买,翻一下,觉得新意不多。一部分是GCC帮助的,一部分是C的知识。

AVR单片机C语言开发入门指导中也提到GCC,但基本是抄GCC的帮助。

如果作为翻译资源来看,买来也不错吧。

hero219 发表于 2004-12-13 18:38:23

好啊好啊,让我也来报一个名,

一个完完全全的新人,

对用什么还没有太好的认识,

跟着大家走

lurker_soo 发表于 2004-12-13 18:43:09

看来我也得转用GCC了.因为公司最近严令禁止用盗版软件.本来已经下定决心用IAR了的,看来只有转GCC了.

Miker 发表于 2004-12-13 18:46:01

以前用winavr的时候,只在21IC上有一些讨论,大多数时间还是在老外的网站里潜水,不停地搜来搜去,苦于不通英语(只能看得懂一些,无法交流),学起来很费力。这下好了,大家互相讨论,互相提高。

jeewood 发表于 2004-12-13 19:34:07

至于Makefile GCC有makefile wizard.非常简单,只要设定几个简单项就可以了,如Main file name(最好与你的C语言主要文件名一致,否则在C/C++ source files项中设定),MCU type就可以了,当然了解一下其它选项也不错的.

lanmp 发表于 2004-12-13 19:46:53

别买那本 AVR-GCC与AVR单片机的C语言开发 ,我买了(不是自己掏钱),一点用都没有,基本上就是中文的avr-libc-user-manual,讲了一点vmlab,不过很简略,好像只有一个例子,我就是翻了几页就扔一遍了。

HJJourAVR 发表于 2004-12-13 20:23:48

虽然我现在用的是IAR。

不过我将来的选择是GCC。

因为GCC

无所不在。不但AVR,很多微处理器(包括32位的ARM)都有GCC编译器。

完全免费。

不断升级。



这段时间,我看了一下ARM方面的资料,想用任天堂的GBA掌上游戏机(RMB680)来学习ARM,比市面的ARM7学习板便宜多了,而且带大大的彩色LCD,64M卡带才RMB40多(注意:是64Mbit=8MB=4MWord)。

用GBA学习也有不好地方:硬件固定了,IO口不多,BIOS是Nintendo的。

我想,能驱动GBA也算学会了ARM.

不过现在NDS(ARM9核心,更强劲的游戏机)刚出来,GBA的价格将会跌的更厉害,再等半年吧。

(高端ARM,低端的AVR我也不会放弃的!)

http://cache.amobbs.com/bbs_upload782111/files_1/armok0116982.jpg



补充:

      听说: 90%的手机都是ARM核心

      确定: 我家的R410路由器就是ARM9核心。

hotpower 发表于 2004-12-13 21:06:24

阿莫今天没喝酒吧...动真格的了???



佛主慈悲为怀了...现在确实是"义举"的好时机,...不能跟着别人的感觉走呀...



这样总给人们留下宣扬"正版软件"的美名...



否则,有人问: "站长您用的ICCAVR是正版的吗???"



教主肯定会仰起头来大声地说:"Yes!!!"(转过身去脸由白转红后变紫青)...为此,腰痛了好几天...



不知者还认为教主酒精中毒了...

armok 发表于 2004-12-13 21:09:39

cpu100 发表于 2004-12-13 21:15:05

我也打算将来转向 gcc avr,毕竟是国际通用标准。只是可能移植起来会有点麻烦?那位大虾 知道?

armok 发表于 2004-12-13 21:22:47

jeewood 发表于 2004-12-13 21:30:45

移植肯定是可能的,只是工作量的问题。我可以将C的代码移入BASIC,其实这已经不叫移植,而是“参照”了!:) 另外移植主要是指从这一种硬件环境换入另一种硬件环境。如果说编译器本身技持这种硬件,移植问题几乎不存在。(主要就要看编译器涉及的面的问题了!)
-----此内容被jeewood于2004-12-13,21:40:03编辑过

hotpower 发表于 2004-12-13 21:53:10

报告教主:刚有个网友给了一个老外的链接,我竟然没有找出半个"ICCAVR"的字样,但WINAVR和GCCAVR却一大堆...好象老外只会用WINAVR(GCCAVR)....





http://www.edaboard.com/viewtopic.php?t=88483&postdays=0&postorder=asc&highlight=8051+%2CPIC+%2CAVR+%3F%3F%3F%3F%3F&start=30

testcode 发表于 2004-12-14 06:04:09

我也正在使用。Winavr其实挺好用的,生成的代码效率很高,而且是免费的。

曾试过ICCAVR,生成的代码效率很低(比较与IAR) 。

我曾用一段 ( Wait(unsigned int tenthsMS) ;//延时)代码测试,用IAR生成的代码正好产生1秒延时(Wait(10000);),但ICCAVR生成的代码(Wait(10000);)产生大约5秒延时...

但IAR设置挺烦的...

附:

void Wait(unsigned int tenthsMS)

{

        long delay;

       

        delay =tenthsMS;                       

        delay = delay * (long)(CLOCKFREQ * 0.0001);       

         delay = delay - 118;

        delay = delay >> 4;

        while(delay > 0){

                delay--;

                _NOP();

                _NOP();

                _NOP();

                _NOP();

        }

}

9810956 发表于 2004-12-14 07:57:45

我现用ICC AVR 完成手头项目也加入GCC

jackiezeng 发表于 2004-12-14 07:59:50

跟着各位大哥的脚步走~~~!

Jacky 发表于 2004-12-14 08:41:15

一大早就看到这个消息,真是高兴,早就想转入GCC了,现在有好的理由了。

wamaggie 发表于 2004-12-14 11:21:02

刚从汇编转到ICCAVR,现在又要转成GCC,累啊!

不过看了lanmp的留言:阿莫说“如果你想在本网站能找到人交流,比如与我交流的话...”很有种威胁的语气就咽回去了。

算了,我还是换吧!./emotion/em019.gif

armok 发表于 2004-12-14 11:29:33

jsjh 发表于 2004-12-14 13:24:46

以前www.avrfreaks.net首页有一个使用AVR C编译器的统计调查,WinAVR使用率一直遥遥领先.只是出于商业原因国内没有对winavr提供技术支持的.

教主又将做一件大快人心的事

jiangbibo 发表于 2004-12-19 22:32:56

我也来报一个名,我以前用的是PIC,编译器为HI-TECH的PICC。

用GCC AVR,为以后真正用自由软体做准备吧,现用Windows,以后一定得用Linux

greatsnows 发表于 2004-12-19 22:43:45

加我greatsnows@hotmail.com,一起学习。

tugen 发表于 2004-12-19 23:34:47

我一直是GCC的支持者,可惜没有支持51的,所以做51的程序只能用keil。

DEF_ 发表于 2004-12-20 00:14:58

我用GCC

GCC为什么没有支持51,是因为51堆栈太少移植困难

donkey 发表于 2004-12-20 21:22:43

报个名

powerboyll 发表于 2004-12-21 09:45:56

报名。

我已经成功使用gcc。并把芯艺 mod 的 timerpwm 等试验在 M16上完成。

biansf2001 发表于 2004-12-21 10:16:53

还没接触gcc,不会用阿,看看文档再说

chenpeng0407 发表于 2004-12-21 10:32:45

我也报个名,以后请大家多多支持

                              谢谢

fjdbj 发表于 2004-12-21 12:31:31

我也报个名,我一直在使用WINGCC

bonito 发表于 2004-12-21 19:03:39

一直都用GCC没用过别的,刚想发个帖子问问GCC有什么不足呢,为什么用的人这么少!

dengchongguang 发表于 2004-12-21 20:19:18

我也要学GCC.

mthink 发表于 2004-12-21 20:31:46

我跟了

Dong_mcu 发表于 2004-12-22 13:20:26

我一直关注着ouravr,实在仍不住要加入.

我刚作了一个程序,从ICC移植到GCC。

遇到了两个问题

1:在ICC下设的全局变量(如 i)用于在定时中断中的自加(i++;)然后在主程序中判断该变量是否加到需要值如100,( while(i!=100); )。在ICC下正常。但是移到GCC后当i应定时中断加到100时,它跳不出while(i!=100); 用avr studio仿真时就见它死在这条语句上而i还在往上加。

2: 用GCC自带的下载 Program,有时怎么没有把代码下载到AVR中只是做了擦除工作。



请各位友人帮忙,先谢了!

atommann 发表于 2004-12-22 14:04:59

while(i!=100);



能不能写成

while(i<100);

jeewood 发表于 2004-12-22 15:30:34

while(i<100)为 i在100以内不含一百.而while(i!=100)则仅在i不为一百时停止循环,i<100和i>100都将继续循环.如果你想让i从x开始到100就不在循环了,用i<100比较合适(更可靠),如果你仅在i为100时要退出循环的用while(!=100).因为i可以加,也可以减的.见下面实例:



i=0;

while(i<100){

i++;

}



i=10;

while(i<100){

i++;

}



i=1000;

while(i!=100){

   i--);

}



i=1000;

while(i!=100){

   if(i>100)i--;

   if(i<100)i++;

}



i=50;

while(i<100){

   i+=10;

}

.......

jacksmart 发表于 2004-12-22 15:58:32

我是刚开始学习GCC的,报个名先!

Dong_mcu 发表于 2004-12-22 18:35:32

谢谢atommann and jeewood .

我试了你们的方法可还是不行.程序如下:



/*    MCU=mega8 */



#include "avr/io.h"

#include "avr/signal.h"

#include "avr/interrupt.h"

#include "delay.h"

unsigned int count;

//---------端口初始化-------------

void port_init(void)

{

DDRC=0xff;

PORTC=0xff;

DDRD=0xff;

PORTD=0xff;

}

//-------------------------------

void timer0_init(void)

{

TCCR0 = 0x00;

TCNT0 = 0xbe;                

TCCR0 = (0<<CS02)|(1<<CS01)|(0<<CS00); //预分频比8

}

//--------------------------------

SIGNAL(SIG_OVERFLOW0)

{

TCNT2=0xbe;

   count++;

}



//------------主程序---------------

int main(void)

{

TCNT2=0xbe;

port_init();         //端口初始化

timer0_init();        //初始化定时器T2

TIMSK =1<<TOIE0;        //开放T0溢出中断

sei();                //开放全局中断



//========================

while(1)

{

   count=0;

   while(count<5);

   PORTC=~PORTC;

}

}



---------------------------------------------------------------------

在AVRSTUDIO4.10中仿真:



http://cache.amobbs.com/bbs_upload782111/files_1/armok0119942.jpg

atommann 发表于 2004-12-22 19:11:56

你在前面定义了一个函数:

//--------------------------------

SIGNAL(SIG_OVERFLOW0)

{

TCNT2=0xbe;

   count++;

}



其中用了count这个全局变量

这个函数没有在主函数中调用

不知道有没有影响



另外

while(count<5);

下面为什么看不到count自增呢?

比如

while(count<5);

{

PORTC=~PORTC;

count++;

}
-----此内容被atommann于2004-12-22,19:17:45编辑过

Dong_mcu 发表于 2004-12-23 12:43:03

其实这是个调试用的程序.我主要是想用定时器产生一个基时如10ms,作一个延时模块.

void delay(uint time)

{

TIMSK|=1<<TOIE0;      //开放T0溢出中断



count=0;

while(count!=time)   //or=while(count<time);

count=0;



TIMSK&=0xbf;         //关T0溢出中断

   

}

以后用延时时调它就行.



下面的这个程序段是GCC中的中断处理函数(m8为例):

SIGNAL(SIG_OVERFLOW0)//定时中断0 也可写INTERRUPT(SIG_OVERFLOW0)与SIGNAL有区别.

{

TCNT2=0xbe;   

   count++;

}

在ICC中是:

#pragma interrupt_handler timer0_ovf_isr:10 //中断向量

...

void timer0_ovf_isr(void)

{

TCNT2=0xbe;   

   count++;

}



当然GCC自带的delay.h中的延时模块也挺好用(精确度较高),但终想用个下自己做的.

我就是想不明白这个方法在ICC中就行在GCC中怎么就是跳不过去.

谢谢!

lurker_soo 发表于 2004-12-23 13:54:14

請問Dong_mcu,關於GCC自帶的delay.h中的延时模块怎麼用,我用下面的方法始終不行,模擬時每次執行完PORTA=0X00;這一句就直接跳到}了。



#include <avr/io.h>

#include <avr/delay.h>

#include <inttypes.h>



int main(void)

{

        uint8_t count=0xf0;

        PORTA=0X00;

        _delay_loop_1(count);

        PORTA=0XFF;

        while(1);

}

Dong_mcu 发表于 2004-12-24 13:17:35

回lurker_soo:

其实没有什么错误,是你的仿真方法有点问题.介意你用将光标执行到PORTA=0XFF;

因为你在单步执行的时候,执行到_delay_loop_1(count); 时PC指针跳到了它的内部函数代码段了(在delay.h中).如你想看的话介意你在用studio 调试时将反汇编调试窗口打开就可看到它在执行内部代码的过程了.

http://cache.amobbs.com/bbs_upload782111/files_1/armok0120462.jpg

lurker_soo 发表于 2004-12-24 14:04:08

果然是對的,謝謝Dong_mcu,這個可以實現精確定時,的確不錯,IAR也有類似的函數.

zhaoxi322 发表于 2004-12-24 14:18:34

我正准备学AVR,ICC软件试过了,停简单;再下载一个WINAVR试试吧,GCC是免费的,真好。我报名

cszhaoqm 发表于 2004-12-26 11:48:23

以前用51,现在准备用avr试试,菜鸟一只,新加入

shenxf 发表于 2004-12-31 19:57:50

Dong_mcu你的程序没有错,Makefile中的OPT=s改成OPT=0试试

zhangna_901887 发表于 2005-1-1 18:02:21

加我一个,早就想用GCC了,太好了,这里很快将是GCC的热门网站了.

zhangna_5@hotmail.com

shenxf 发表于 2005-1-1 20:28:59

也加我一个,已经用AVRGCC有一年了,希望与朋友们交流.

x_f_shen@sina.com

baplmqj 发表于 2005-1-2 09:28:23

我以前用ATmanAVR,那是傻瓜相机!!

为了提高基本功,我现在也报名用winGCC,

我如提出很菜的问题大家不要笑喔!
-----此内容被baplmqj于2005-01-02,09:31:00编辑过

1982wjn 发表于 2005-1-2 16:10:22

我喜欢免费的和不用花钱的

当然还要好的./emotion/em035.gif

zjgs_eb 发表于 2005-1-2 20:34:56

我一开始就是用的GCC,因为它免费!

qianwei 发表于 2005-2-3 20:15:44

想做GCC菜鸟

sam2004 发表于 2005-2-4 09:52:30

我也报名~

feng_zhao1983 发表于 2005-2-6 18:49:31

我刚开始使用WINAVR,就被折腾得够呛。装好软件后,在调入makefile后make all,但就是不能生成coff文件,这是怎么回事?有时候还会出现编译无法进行的现象,这是什么问题,怎么改正,我还没弄出一个coff文件来,我只用ICC弄出来过,由于刚接触AVR不久,听人说GCC挺好的,我就想学这个,还请各位大虾指点一下小弟!

madaha 发表于 2005-2-6 21:22:14

双龙告诉我GCC是免费的,但是无法生成COF文件,因此无法用AVR STDIO调试。



是真的吗?

各位用GGC编译,调试用啥?

hotpower 发表于 2005-2-6 22:28:14

哈哈,"GCC是免费的,但是无法生成COF文件,因此无法用AVR STDIO调试。"--天方夜潭不成???



如果GCC"无法生成COF文件",肯定"无法用AVR STDIO调试。"



问题是从没听说或遇到过此事!!!

uart 发表于 2005-2-7 02:06:48

我也和站长一样,也是从ICC开始的。



开始嘛,喜欢ICC简单的代码生成向导,很多东东都很方便的生成了。后来接触了GCC,而且积累的代码也多了,什么都可以捣鼓一下吧:D



个人感觉,GCC对循环的优化相当厉害(特别是空循环),居然用FOR,int 1~10000,和int 1~20000 (或者是LONG型1000000和2000000之类吧,忘了:P)的空循环时间是差不多的。后来习惯用定时器了,时间就精确得多了。



至于PN(以及PN2),对于编写单个程序是非常方便,而且易于浏览和修改,绝对是首选。但是对于多个c文件组成的一个项目程序,个人觉得还是SI方便很多:)

zhonghua_li 发表于 2005-2-7 15:15:23

<AVR-GCC与AVR单片机的C语言开发> 这本书我也买了,后来才发现上当了,完全就是对GCC用户手册的不完全翻译。我用GCC也有一个多月了,做了一个东西就是AVR模拟视频的。我想对于咱们这些要搞硬件的来说,有时候没法要与汇编打交道。所以一直想把 关于GCC混合汇编的东西给搞明白。现在会一点点了,“AVR模拟视频”就是这样做的 ,不过有些方面还不会,用户手册上也没找到例子。希望得到大家的帮助!

shenxf 发表于 2005-2-7 18:45:56

其实生成cof文件也很简单:make coff 和make extcoff 命令,make coff 生成AVR STDIO3.5的cof文件,make extcoff生成AVR STDIO4的cof文件。

feng_zhao1983 发表于 2005-2-7 19:43:40

我是在makefile里面设置生成extcoff文件,但是进行编译时就是生成不了coff文件或者说

main.o needed ,就是说软件的配置可能还存在问题。但是我不知道问题出在哪,也不知道怎么改,你们用的时候直接就成功了吗?我怎么会遇到这么多问题,奇怪了,难道WINAVR自带的makefile_template有问题?我在用demo里面的makefile进行编译时又能进行,这里这么多高手,哪位愿意出手帮小弟一把阿。

huasoft 发表于 2005-2-7 19:44:22

C/C++种类太多, GCC是通用性最强的.



版主的支持是学习GCC for AVR的绝好理由!



顶!

qwernet 发表于 2005-2-7 21:29:07

我现在也用WinAVR!

这两天写的CF卡读写程序和FAT系统都是用WinAVR写的。

shenxf 发表于 2005-2-8 14:33:37

to feng_zhao1983

你可以在Makefile文件中all:添加extcoff目标,这样就可以在make all 编译时生成extcoff文件,因为WinAvr的Makefile模板文件make all 不包括extcoff目标,因此用make all编译后,还要执行make extcoff命令

hotpower 发表于 2005-2-9 01:06:21

选用GCCAVR绝对正确...

simon 发表于 2005-2-9 23:50:23

既然GCC是免费的,那么还犹豫什么呢!算我一个哦!

xzpmcu 发表于 2005-2-10 06:50:00

我以前用汇编写AVR,C写51

现在采用GCCAVR,一步到位

爽呀,不过我还是不会用

加入菜鸟行列

有时间和大家讨论,

btw:我是搞模电的!数电比较菜!

freemanw 发表于 2005-2-10 20:33:39

刚刚开始使用,多多交流

hhh_ccboy 发表于 2005-2-11 00:02:13

这帖子被不停的顶,我当然少不了.开始是用ICCAVR的,还很喜欢他的向导功能,后来模仿其向导功能搞了个C51的向导出来呢.

现在转向了GCC了,用起来还可以,不过说实在的,就是没有一个好的IDE界面.但我想用多了就会习惯的了.WINAVR的语法还有个比较头痛的问题,就是CODE区的数组指针老是不好用,真希望以后的版本会改正这个缺点.

cyberboy 发表于 2005-2-11 10:36:24

唱个反调,用起来真的很麻烦,有IAR用时我是不会用。现在用GCC学MOTOROLA的CPU编程,没办法,只能用它,对于初学者上手慢,建议对所学MCU熟悉后再来学GCC,否则头大。

luckydog99 发表于 2005-2-13 22:17:58

我是搞PLC的,学AVR也有一段时间了,开始觉得汇编的简单,后来买了一部双龙公司的SLAVR+(RMB680)来做实验,发现好多程序都没用(我可不是照搬的,堆栈我都设了),想多找些这方面的书嘛,走遍了整个东莞,发现这方面的实在是太少了,我也找了关于GCC的,发现只有在LINUX的书上提到一些,但是我根本就没有接触过LINUX,C语言也只是在大学里学过,简单的C程序还是看得懂地,不知道我学GCC适不适合呢,那软件资料从何而来?又有哪位高人愿意指引迷津呢?

radiochina 发表于 2005-2-15 13:59:27

我是搞工控的,手上有支90S8515,想做个硬盘mp3,初步打算先用AVR,接下来再改成ARM。

   先来报个名。已经下了本站的WINAVR,下一步向站长申请解码片子STA013和DA_片子CS4334,希望得到站长和大家的大力支持。谢谢了先!!!
-----此内容被radiochina于2005-02-15,14:27:56编辑过

hyk728 发表于 2005-2-18 07:55:15

我以前习惯用汇编,今报名学习C  望大家关照

zhaofree2001 发表于 2005-2-18 10:43:43

我也参加...

ljpfjfj 发表于 2005-2-18 12:50:57

我也算一个。

希望在大家的帮助下少走弯路。

lionmilk 发表于 2005-2-21 12:23:33

刚学会了WinAVR 的基本操作,感觉还不错,呵呵!

hello_lzh 发表于 2005-2-21 14:17:16

既然这么多的高手都要选用,呵呵那在下这个小菜鸟也要试一试啊,呵呵,顶

lei_yong 发表于 2005-2-26 20:06:09

本人正在用winavr做项目,希望和大家交流!

garbage_hu 发表于 2005-3-1 10:32:24

我以前用keil C 最近项目准备启用AVR单片机,我现在正在考虑选用C编译器,先顶一个

ack25 发表于 2005-3-1 19:57:52

跟哦,我就在学GCC,还谈不上心得哦,支持支持!

web110 发表于 2005-3-1 20:50:37

我用M48就够用了,好像他不支持M48?

yuefeng 发表于 2005-3-1 20:52:15

刚学avr,正在gcc的学习中,希望大家多多帮助!

susubuhui 发表于 2005-3-7 18:32:19

gcc很不错,我一直在用!susubuhui@yahoo.com.cn

mymach 发表于 2005-3-7 20:23:42

一直在学,一直没有报名,现在报个名!

csq1997 发表于 2005-3-8 15:36:13

我也买了本北航的GCC  好象不怎么样啊  前面讲的、点基本C  后面一点都不详细 不知道、大家看哪本书来学AVR GCC

lei_yong 发表于 2005-3-10 08:33:07

我正用GCC开发项目,大家一起学习!!!

wcg_sunny 发表于 2005-3-12 16:46:13

我也正在用WinAVR/gcc做项目,一起学习!



有个问题想请教:我根据书中的样例写的一个关于以I2C总线方式读写EEPROM(AT24C02)的程序。程序编译成功后,进行链接时出现如下错误提示,似乎提示我的程序中定义的每个自定义函数(包括main()函数)都重复定义了。查了半天都找不到问题在哪里。请问这是怎么回事?怎么解决它?



Linking: i2cbus.elf

avr-gcc -mmcu=atmega8 -I. -gstabs   -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=i2cbus.o-std=gnu99 -Wp,-M,-MP,-MT,i2cbus.o,-MF,.dep/i2cbus.elf.d i2cbus.oD:/WinAVR/MySamples/i2cBus.o   --output i2cbus.elf -Wl,-Map=i2cbus.map,--cref    -lm

D:/WinAVR/MySamples/i2cBus.o(.text+0x0): In function `delay_us':

i2cbus.c:20: multiple definition of `delay_us'

i2cbus.o(.text+0x0):i2cbus.c:20: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0xa): In function `delay_ms':

i2cbus.c:26: multiple definition of `delay_ms'

i2cbus.o(.text+0xa):i2cbus.c:26: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0x24): In function `led_display':

i2cbus.c:35: multiple definition of `led_display'

i2cbus.o(.text+0x24):i2cbus.c:35: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0x92): In function `led_fill':

i2cbus.c:50: multiple definition of `led_fill'

i2cbus.o(.text+0x92):i2cbus.c:50: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0xac): In function `i2c_write':

i2cbus.c:59: multiple definition of `i2c_write'

i2cbus.o(.text+0xac):i2cbus.c:59: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0x126): In function `i2c_Read':

i2cbus.c:84: multiple definition of `i2c_Read'

i2cbus.o(.text+0x126):i2cbus.c:84: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0x1d0): In function `fill_buff':

i2cbus.c:115: multiple definition of `fill_buff'

i2cbus.o(.text+0x1d0):i2cbus.c:115: first defined here

D:/WinAVR/MySamples/i2cBus.o(.text+0x23a): In function `main':

i2cbus.c:127: multiple definition of `main'

i2cbus.o(.text+0x23a):i2cbus.c:127: first defined here

make.exe: *** Error 1



> Process Exit Code: 2

lei_yong 发表于 2005-3-16 22:08:48

支持
页: [1] 2 3 4 5 6 7
查看完整版本: 正在使用或即将使用 WinAVR / GCC 的请进入报名,希望更多的人加入。