首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

bank的请教

bank的请教

各位:

使用单片机型号为MC9S12DP512。

当前编译后Default_ROM的代码量已超过16K。编译器将大部分代码放置于第一个BANK (0x208000~0x20BFFF),另外超出16K的一小部分放到了第二个BANK (0x218000~0x21BFFF)。

但现在好像无法调用第二个BANK (0x218000~0x21BFFF)范围内的函数,如果我减小程序,使所有代码放置在第一个BANK (0x208000~0x20BFFF),则程序运行正常,否则程序无法正常运行。估计是因为在调用第二个BANK (0x218000~0x21BFFF)范围内代码时导致系统崩溃。

请问此问题如何解决?

多谢指教!不胜感激!

忘了说明,该程序未使用专家系统。若使用专家系统,则代码量超出16K也能正常运行。

不知专家系统是怎么处理的。

使用的内存模式是Banked Memory

哪位知道的告诉一下,实在是很着急。

可以参看一下这个帖子里关于PPAGE寄存器的编译设置:

http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=118421&ID=118421

海纳百川  有容乃大
原先4000~7FFF的Flash未使用,我把16K代码放到了4000~7FFF,另外超出16K部分放到了第一个Bank(0x208000~0x20BFFF),也暂时解决了这个问题,但是当程序再超过第一个Bank的时候,估计就得按陈老大的方法了。
返回列表