打印
[AVR单片机]

强烈要求双龙清除精华区IAR PK GCC的错误收藏图片!!

[复制链接]
1998|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
粉丝|  楼主 | 2007-9-18 08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
精华区的错误收藏会误导初学者对编译器工具性能GCC的错误认识!!
理由如下:testa.c的测试中编译后的82个字节是不能再省的编译代码!!
已经有高手出示了证据如下:
**************************************************************
宇宙飞船 发表于 2007-9-17 17:06 AVR 单片机 ←返回版面    
29楼: 楼主的第一条测试GCC才用了6条指令14字节,共:82字节 
Size after:
AVR Memory Usage
----------------
Device: atmega48

Program:      82 bytes (2.0% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)

-------- end --------

> Process Exit Code: 
> Time Taken: 00:05
*******************************************
00000000 <__vectors>:  //这段代码50字节必需:
   0:    28 c0           rjmp    .+80         ; 0x52 <__data_load_end>
   2:    20 c0           rjmp    .+64         ; 0x44 <__bad_interrupt>
   4:    1f c0           rjmp    .+62         ; 0x44 <__bad_interrupt>
   6:    1e c0           rjmp    .+60         ; 0x44 <__bad_interrupt>
   8:    1d c0           rjmp    .+58         ; 0x44 <__bad_interrupt>
   a:    1c c0           rjmp    .+56         ; 0x44 <__bad_interrupt>
   c:    1b c0           rjmp    .+54         ; 0x44 <__bad_interrupt>
   e:    1a c0           rjmp    .+52         ; 0x44 <__bad_interrupt>
  10:    19 c0           rjmp    .+50         ; 0x44 <__bad_interrupt>
  12:    18 c0           rjmp    .+48         ; 0x44 <__bad_interrupt>
  14:    17 c0           rjmp    .+46         ; 0x44 <__bad_interrupt>
  16:    16 c0           rjmp    .+44         ; 0x44 <__bad_interrupt>
  18:    15 c0           rjmp    .+42         ; 0x44 <__bad_interrupt>
  1a:    14 c0           rjmp    .+40         ; 0x44 <__bad_interrupt>
  1c:    13 c0           rjmp    .+38         ; 0x44 <__bad_interrupt>
  1e:    12 c0           rjmp    .+36         ; 0x44 <__bad_interrupt>
  20:    11 c0           rjmp    .+34         ; 0x44 <__bad_interrupt>
  22:    10 c0           rjmp    .+32         ; 0x44 <__bad_interrupt>
  24:    0f c0           rjmp    .+30         ; 0x44 <__bad_interrupt>
  26:    0e c0           rjmp    .+28         ; 0x44 <__bad_interrupt>
  28:    0d c0           rjmp    .+26         ; 0x44 <__bad_interrupt>
  2a:    0c c0           rjmp    .+24         ; 0x44 <__bad_interrupt>
  2c:    0b c0           rjmp    .+22         ; 0x44 <__bad_interrupt>
  2e:    0a c0           rjmp    .+20         ; 0x44 <__bad_interrupt>
  30:    09 c0           rjmp    .+18         ; 0x44 <__bad_interrupt>
  32:    08 c0           rjmp    .+16         ; 0x44 <__bad_interrupt>

00000034 <__ctors_end>:   //初始化STACK这段代码必需
  34:    11 24           eor    r1, r1
  36:    1f be           out    0x3f, r1    ; 63
  38:    cf ef           ldi    r28, 0xFF    ; 255
  3a:    d2 e0           ldi    r29, 0x02    ; 2
  3c:    de bf           out    0x3e, r29    ; 62
  3e:    cd bf           out    0x3d, r28    ; 61
  40:    02 d0           rcall    .+4          ; 0x46 <main>
  42:    07 c0           rjmp    .+14         ; 0x52 <__data_load_end>
*********************************************************
00000044 <__bad_interrupt>: //出错处理,重新启动。
  44:    dd cf           rjmp    .-70         ; 0x0 <__heap_end>
//****************************以上68个字节必不可少************
00000046 <main>:
{

  unsigned int a,b,c;
  unsigned char buf;
  DDRD =0xff;
  46:    8f ef           ldi    r24, 0xFF    ; 255
  48:    8a b9           out    0x0a, r24    ; 10
  4a:    80 e0           ldi    r24, 0x00    ; 0
  a=100;
  b=200;
  c=300;
  buf=0;
  while(1)
   {
    buf++;
  4c:    8f 5f           subi    r24, 0xFF    ; 255
    PORTD =buf;
  4e:    8b b9           out    0x0b, r24    ; 11
  50:    fd cf           rjmp    .-6          ; 0x4c <main+0x6>
Disassembly of section .fini0:

00000052 <__stop_program>:
  52:    ff cf           rjmp    .-2          ; 0x52 <__data_load_end>

相关帖子

沙发
zsmbj| | 2007-9-18 09:39 | 只看该作者

我认为没有什么问题。

这个帖子看完了,自然都会明白。除非虎头蛇尾。看了第一个帖子就再也不看了。不过我相信搞技术的不会这样吧,要这样还搞什么技术。

使用特权

评论回复
板凳
wolver| | 2007-9-18 09:46 | 只看该作者

楼主太激动了吧....

原贴的主已经声明过了,因为框架的代码远大于程序代码...

世间本无恶人,何必非要划清立场呢?

使用特权

评论回复
地板
yewuyi| | 2007-9-18 09:47 | 只看该作者

哈哈,这么激动?

使用特权

评论回复
5
mgarm| | 2007-9-18 09:52 | 只看该作者

哈哈,民众自觉要求限制

可以不同意此观点,却不能禁止
中国人所谓的正直

使用特权

评论回复
6
粉丝|  楼主 | 2007-9-18 10:08 | 只看该作者

RE:3楼,进精华区打开看看就知道了,精华区的主贴根本就

强烈建议双龙重新收藏修改过的原贴,否则就有偏帮IAR的谦凝!这不是咱们网友想看到的结果。

坛子必需要以公平作原则!

使用特权

评论回复
7
wolver| | 2007-9-18 10:15 | 只看该作者

re:6楼

你说的论坛区和精华区标题不一致的问题,应该是二姨家的论坛数据库问题,这恐怕分坛的板主改不了(我以前在二姨家也做过斑主)。不过我认为分坛的板主有义务上报二姨修改论坛的bug....

使用特权

评论回复
8
zsmbj| | 2007-9-18 10:45 | 只看该作者

确实如7楼所说。

这个目前还改过不来,并且加了“精”的帖子在21ic上也不能撤销。看来21ic管理帖子还是很不方便啊。

使用特权

评论回复
9
宇宙飞船| | 2007-9-18 10:59 | 只看该作者

GCC是神仙们的杰作!

大家想想一般的程序员有能力改动GCC的优化性能代码吗?这些人连GCC的边都不敢碰!更别说修改!
只有一些不食人间烟火的编程人员才有能力做GCC性能优化的事情!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

432

帖子

0

粉丝