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

代码存放在NON_BANKED和默认存储区有多大区别?

代码存放在NON_BANKED和默认存储区有多大区别?

我听说中断服务程序存放在默认的存储段内会出问题,是这样么?
对,中断一定要放在非分页存储区里。因为中断矢量地址是16位的,放在分页地址中就无法映射了。
海纳百川  有容乃大
阿,明白了,dp256的中断向量是16位的,分页寻址还需要页码,所以没法寻址,是这个意思吧
对。
海纳百川  有容乃大
4# strongchen


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