[51单片机] 为何增加函数后,在编译时,data值反而小了?

[复制链接]
1330|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的值反而又小了。

求教各位大侠指导!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ddllxxrr 发表于 2016-4-1 06:21 | 显示全部楼层
有一些东东,优化掉了。而没有优化的就占空间了
singleMCU 发表于 2016-4-1 11:00 | 显示全部楼层
是不是把编译的模式更改了Compact或large
coody 发表于 2016-4-1 15:10 | 显示全部楼层
优化,局部变量覆盖,等等
dirtwillfly 发表于 2016-4-1 20:17 | 显示全部楼层
怀疑优化选项变了
457344370 发表于 2016-4-1 22:38 来自手机 | 显示全部楼层
估计你把优化跳转开了,这个以前我也遇到过,注释掉函数反而占用更多的Flash和RAM
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部