打印
[51单片机]

为何增加函数后,在编译时,data值反而小了?

[复制链接]
1068|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laolangxunsi|  楼主 | 2016-4-1 00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在main.c主函数中,
             当任务4、任务5同时运行时,编译正常;
     当任务5改为:
      Deal_DispTemp ();             // 读取温度数据并显示
      //   Ds1302Display();    // 读取时间并显示
              编译出错:*** ERROR L107: ADDRESS SPACE OVERFLOW
有人说是“字符串长度超长了,unsigned char  Ds1302str1[18];”,
导致编译出错:"*** ERROR L107: ADDRESS SPACE OVERFLOW"  “Program Size: data=106.2 xdata=0 code=2345”
总共才128字节,却用了142个字节了。。。   
但是:     当任务5改为:
      Deal_DispTemp ();             // 读取温度数据并显示
      Ds1302Display();    // 读取时间并显示
为啥编译又正常?
按道理,增加语句后,用掉更多字节,反而编译正常:
Program Size: data=106.2 xdata=0 code=2345
creating hex file from "zuhe04"...
data的值反而又小了。

求教各位大侠指导!!

zuhe04GG.rar

78.77 KB

相关帖子

沙发
ddllxxrr| | 2016-4-1 06:21 | 只看该作者
有一些东东,优化掉了。而没有优化的就占空间了

使用特权

评论回复
板凳
singleMCU| | 2016-4-1 11:00 | 只看该作者
是不是把编译的模式更改了Compact或large

使用特权

评论回复
地板
coody| | 2016-4-1 15:10 | 只看该作者
优化,局部变量覆盖,等等

使用特权

评论回复
5
dirtwillfly| | 2016-4-1 20:17 | 只看该作者
怀疑优化选项变了

使用特权

评论回复
6
457344370| | 2016-4-1 22:38 | 只看该作者
估计你把优化跳转开了,这个以前我也遇到过,注释掉函数反而占用更多的Flash和RAM

使用特权

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

本版积分规则

1

主题

5

帖子

1

粉丝