Board logo

标题: bank的请教 [打印本页]

作者: hitmissile    时间: 2008-6-19 10:13     标题: bank的请教

各位:

使用单片机型号为MC9S12DP512。

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

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

请问此问题如何解决?

多谢指教!不胜感激!


作者: hitmissile    时间: 2008-6-19 11:02

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

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


作者: hitmissile    时间: 2008-6-19 14:46

使用的内存模式是Banked Memory


作者: hitmissile    时间: 2008-6-20 09:00

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


作者: strongchen    时间: 2008-6-20 15:22

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

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


作者: hitmissile    时间: 2008-6-20 18:33

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




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0