Board logo

标题: 代码存放在NON_BANKED和默认存储区有多大区别? [打印本页]

作者: acmesky    时间: 2007-8-29 10:08     标题: 代码存放在NON_BANKED和默认存储区有多大区别?

我听说中断服务程序存放在默认的存储段内会出问题,是这样么?
作者: strongchen    时间: 2007-8-29 13:41

对,中断一定要放在非分页存储区里。因为中断矢量地址是16位的,放在分页地址中就无法映射了。
作者: acmesky    时间: 2007-8-29 16:18

阿,明白了,dp256的中断向量是16位的,分页寻址还需要页码,所以没法寻址,是这个意思吧
作者: strongchen    时间: 2007-8-30 11:51

对。
作者: cjxily    时间: 2010-10-23 16:59

4# strongchen


应该也可以访问吧,用GPAGE
作者: zephanshaka    时间: 2010-10-25 17:22

进中断ISR前保存现场时硬件不会把PPAGE的值保存到堆栈,而离开ISR时需要恢复中断之前的现场,没有PPAGE程序就无法正常执行下去,而在NOBANKED区16位巡址不会改变中断前PPAGE的值,故能保证中断能正常返回。用GPAGE的话实际也是跟PPAGE关联的,PPAGE在ISR中被改变,必然导致不能恢复中断前的现场。如果你需要在芯片上移植UcOS的代码,这点会很重要。




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