打印

求教,:keil code banking

[复制链接]
2820|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
箫笑|  楼主 | 2009-9-25 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教关于keil的分bank,大概弄明白了代码是怎么放的,还很糊涂RAM数据怎么分配的呢?

只因为发现了一个现像:每当去掉一个bank1里的函数对bank2里的函数的调用,就发现DATA值会增加不少,这是什么原因呢?

难道不是当前bank里的局部变量才会分配到RAM里吗?

没有搞清楚缘由,也不知道是否描述清楚了,哪位知道的能给我讲讲,谢谢了!

相关帖子

沙发
ruiwei0201| | 2009-9-25 09:24 | 只看该作者
可能是因为你定义的函数没有被调用的缘故,Keil的编译器对函数内的局部变量采用共享机制来优化内存的使用,如果编译器发现有函数未被调用,则其内的局部变量被视为全局变量处理(我自己理解),不会与其他函数共享内存空间,所以DATA值会增大!

使用特权

评论回复
板凳
chenluck| | 2009-9-25 16:43 | 只看该作者
在使用BANKSWITCH时,最好不要在不同的BANK里互相调用程序,如果要调用尽可能的调用PUBLIC位置的子程序,否则会大量消豪程序空间与RAM的

使用特权

评论回复
地板
箫笑|  楼主 | 2009-9-28 08:11 | 只看该作者
回LS,我现在奇怪的就是,没有在bank之间互相调用程序,RAM值就要增加,相反的,有互相调用,DATA值就降下来了.

使用特权

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

本版积分规则

78

主题

368

帖子

0

粉丝