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

在prm中声明中断向量地址

VECTOR X InterruptName; X是中断号,
或:
VECTOR ADDRESS 0xFFFC InterruptName;

InterruptName是写在程序里的中断函数名,式如:

interrupt void InterruptName(void){};
海纳百川  有容乃大
把你的project贴上来,我帮你改一下。
海纳百川  有容乃大
strongchen_free@yahoo.com.cn
海纳百川  有容乃大
VECTOR ADDRESS这一句加在PRM文件里,VECTOR 0的后面,如:

VECTOR 0 _Startup /* reset vector: this is the default entry point for a C/C++ application. */
//VECTOR 0 Entry /* reset vector: this is the default entry point for a Assembly application. */
//INIT Entry /* for assembly applications: that this is as well the initialisation entry point */
VECTOR ADDRESS 0xFFFC SCI0Interrupt /*后面不要分号*/

另外在main里面,中断函数必须放在非分页地址中,所以其前后可以各加一个#pragma:

#pragma CODE_SEG NON_BANKED
interrupt void SCI0Interrupt(void)
{
}
#pragma CODE_SEG DEFAULT

我已经把改好的project打包发给你了。
海纳百川  有容乃大
因为中断向量是16位的,而分页地址是22位的。所以中断必须放在非分页地址中,才能根据中断向量进行寻址。
海纳百川  有容乃大
有什么问题还是到这里来发贴比较好,不但能让更多的人看到,也会得到更多的帮助。
海纳百川  有容乃大
你说写入片子后不能进入中断,但你的project中只有full chip simulation,即软件仿真,没有硬件调试的target。你应重建一个project,在引导中选择硬件调试的target连接。
海纳百川  有容乃大
full chip simulation和硬件调试用的是同一个软件,但是可以在调试界面中设置是采用软件仿真还是硬件调试。有没有写入硬件在调试过程中应该可以看得出来的。
海纳百川  有容乃大
返回列表