社区
单片机/工控
帖子详情
keil 中 data区域的问题
LinuxStriver
2013-09-05 09:23:26
今天遇到一个很奇怪的问题,在keil中,在STC12C5A60S2下,写了很多函数,当在主函数中没有调用某些函数时,编译时:data=132,当加上某个函数调用时:data=65;对此,本人很不理解,请大神解答!
...全文
406
8
打赏
收藏
keil 中 data区域的问题
今天遇到一个很奇怪的问题,在keil中,在STC12C5A60S2下,写了很多函数,当在主函数中没有调用某些函数时,编译时:data=132,当加上某个函数调用时:data=65;对此,本人很不理解,请大神解答!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qllaoda
2013-09-14
打赏
举报
回复
KEIL会做RAM的覆盖分析优化,这样可以减少RAM的消耗,而没有被调用的函数还是会被保留,而且不参与优化分析,所以这些函数占用的RAM无法被优化,导致RAM消耗反而更大。这个跟data区没有关系,任何区域的变量都是如此。
qgq8312
2013-09-07
打赏
举报
回复
你加的函数是不是内部占用了很大的RAM,导致溢出了?
rszqy
2013-09-06
打赏
举报
回复
C51会把没有调用的函数当作中断函数,而且会给中断函数里的的局部变量预留空间,就像全局变量一样给分配了内存,所以出现这种情况就没什么奇怪了.
lbing7
2013-09-06
打赏
举报
回复
这种不奇怪,只是和编译器对资源的分配策略有关
dceacho
2013-09-05
打赏
举报
回复
对于一些没用到的函数,其消耗的资源(RAM)keil出于安全考虑(可能是这个原因)是仍然保留的,所以如果很多函数写了但没用则会消耗掉大量的RAM,相反,你在无关紧要的地方随便调用一下就能大幅度消减RAM消耗. 在ARM的MDK中one ELF section per function已经可以解决这个问题
To_be_sky
2013-09-05
打赏
举报
回复
keil编译时有几个data。要先搞清楚每个data的意思。 你说的data是不是用到的变量数?
青松2
2013-09-05
打赏
举报
回复
自动优化掉了?
单片机
keil
C
中
的
data
、b
data
、i
data
、x
data
等解释
本文主要对单片机
keil
C
中
的
data
、b
data
、i
data
、x
data
、h
data
、p
data
、code做了相关的解释,希望对你的学习有所帮助。
keil
中
data
怎么设置成大一点的值
本文主要介绍了
keil
中
data
怎么设置成大一点的值。
Data
From
Keil
to Excel (
keil
数据导出至excel)
仿真环境下,将
KEIL
中
的内存数据导出到excel。 利用excel的公式将数据解析为需要的整型数据。 利用excel图表展示数据图形。
KEIL
中
如何程序在 RAM
中
运行的示例程序
KEIL
中
如何让程序在 RAM
中
运行的示例程序...............................
Keil
软件仿真调试
Keil
软件仿真调试
单片机/工控
27,510
社区成员
28,796
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章