打印
[51单片机]

KeilC51的生成的代码是怎么计算的

[复制链接]
1321|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 冷调幽忧 于 2016-11-9 09:34 编辑

const区是34,code区是1447.。。。。34+1447=1481,。。。。但生成的bin实际大小是1491,多出10个字节是哪块漏算了的。。。。。。。看了MAP,那10字节是被GAP占据了,不知道GAP是什么用的?还有堆栈的SP长度只是1字节?我调用一次函数至少就去了2个字节吧?




11.jpg (50.75 KB )

11.jpg

112.jpg (4.44 KB )

1

1

3.jpg (84.73 KB )

3.jpg

4.jpg (270.67 KB )

4.jpg

相关帖子

沙发
ayb_ice| | 2016-11-8 15:00 | 只看该作者
const不一定一定是代码区

使用特权

评论回复
板凳
jekey| | 2016-11-8 15:12 | 只看该作者
可以生成map文件,看看就知道了。

使用特权

评论回复
地板
xyz549040622| | 2016-11-8 23:09 | 只看该作者
一般是地址空间不连续导致的 ,建议你先看看map的情况。贴map表上来看看
-------------------
等待别人的解答。

使用特权

评论回复
5
coody| | 2016-11-8 23:43 | 只看该作者
KEIL C51显示的是实际代码长度,中间有空的,不计算在内。
比如,个别版本的编译器,会在开始插入2K的空白(主程序从0x0800开始),但是代码长度不计算再内,显示几百字节的代码,实际要加2K。

使用特权

评论回复
6
robter| | 2016-11-9 08:28 | 只看该作者
以前没有注意到这个问题

使用特权

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

本版积分规则

22

主题

78

帖子

2

粉丝