打印
[AVR单片机]

atmega8,8k空间用了一半怎么就满了?

[复制链接]
2744|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
独占一江秋|  楼主 | 2008-10-18 03:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
独占一江秋|  楼主 | 2008-10-18 03:56 | 只看该作者

这个程序我在其它8k单片机上用汇编做完还剩4k多

怎么avr用c做了一半就做不下去了?

使用特权

评论回复
板凳
独占一江秋|  楼主 | 2008-10-18 15:02 | 只看该作者

难道还得用汇编?

使用特权

评论回复
地板
hl0716| | 2008-10-18 15:16 | 只看该作者

空调温控

空调温控 你做这个的么 

使用特权

评论回复
5
John_Lee| | 2008-10-18 15:17 | 只看该作者

启动文件和库

不能看lst,要看map。

使用特权

评论回复
6
独占一江秋|  楼主 | 2008-10-18 15:41 | 只看该作者

谢谢楼上两位

回4楼:
   是空调温控。用飞利浦8k芯片做过了,汇编,空间还剩1半呢。飞利浦太贵,打算换mega。10年来一直用汇编,几乎所有人都强烈建议用c搞avr,于是想试一下用c,结果这个样子。不是我的c不精,10年前就用c在dos下搞大程序。
回5楼:
   map结果是这样的:
   Area                               Addr   Size   Decimal Bytes (Attributes)
--------------------------------   ----   ----   ------- ----- ------------
                            text   0062   1C1C =   7196. bytes (rel,con,rom)
   我认为icc的报告是正确的,我困惑c的效率难道这么差吗?

使用特权

评论回复
7
ATmega32L| | 2008-10-18 16:24 | 只看该作者

m8的8K是单位是BYTE

m8的8K是单位是字节.
AVR的程序空间单位是字,
8K字节实际上就是4K字空间。

地址刚用到0E3E,就是3648个字,也就是7292字节,
是总程序空间的88%。

另外,ICC是出来名的效率差,
用IAR吧,一般情况下比ICC节省30-40%的代码空间。

使用特权

评论回复
8
独占一江秋|  楼主 | 2008-10-18 16:38 | 只看该作者

谢谢ATmega32L

就按你说的办,换IAR。差点考虑换汇编了。其实早就满了,我拼命优化删减了一顿才省出12%,结果程序很难阅读了。

使用特权

评论回复
9
ljxh401| | 2008-10-24 14:29 | 只看该作者

还是IAR省空间

刚用avr的时候也是用icc 几乎不想用avr 因为程序占用空间太大呃

使用特权

评论回复
10
AIRWILL| | 2008-10-30 09:50 | 只看该作者

咋就没有人推荐 GCCAVR

效率也不错呀

使用特权

评论回复
11
电子尘埃| | 2008-11-4 14:58 | 只看该作者

GCCAVR不好用吧

一个产品用GCCAVR装不下,改用IAR就装下了.

使用特权

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

本版积分规则

13

主题

252

帖子

0

粉丝