Board logo

标题: 在prm中声明中断向量地址 [打印本页]

作者: qutao88    时间: 2006-8-31 10:30     标题: 在prm中声明中断向量地址

我用的是dg128的片子,想做一个它的串口中断程序,不知道如何在prm中声明中断向量地址,请大家给个例子吧.
作者: strongchen    时间: 2006-8-31 16:14

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

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

interrupt void InterruptName(void){};
作者: qutao88    时间: 2006-9-1 16:56

VECTOR ADDRESS 0xFFFC InterruptName;应放在prm中的什么位置?是在SEGMENTS和end间吗?还是在PLACEMENT和end间?第一次中断程序!请指点!谢谢了!
作者: qutao88    时间: 2006-9-1 17:04

能给个例子吗,好象不行呀!编译通不过!!!
作者: strongchen    时间: 2006-9-1 17:19

把你的project贴上来,我帮你改一下。
作者: qutao88    时间: 2006-9-1 18:01

传不上去!可以用QQ吗?或者其它什么的
作者: strongchen    时间: 2006-9-1 18:07

strongchen_free@yahoo.com.cn
作者: qutao88    时间: 2006-9-2 09:16

发到你邮箱了!谢谢版主!
作者: strongchen    时间: 2006-9-4 11:39

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打包发给你了。
作者: qutao88    时间: 2006-9-4 13:15

#pragma CODE_SEG NON_BANKED
interrupt void SCI0Interrupt(void)
{
}
#pragma CODE_SEG DEFAULT
就是把程序放在非分页地址中的作用吗?
还有为什么只能放非分页地址中呢?
作者: strongchen    时间: 2006-9-4 14:04

因为中断向量是16位的,而分页地址是22位的。所以中断必须放在非分页地址中,才能根据中断向量进行寻址。
作者: qutao88    时间: 2006-9-5 09:13

哦!谢谢!
作者: qutao88    时间: 2006-9-5 15:03

你好,现在还有点问题,具体发到你邮箱了,请你指导一下
作者: strongchen    时间: 2006-9-5 16:16

有什么问题还是到这里来发贴比较好,不但能让更多的人看到,也会得到更多的帮助。
作者: strongchen    时间: 2006-9-5 16:55

你说写入片子后不能进入中断,但你的project中只有full chip simulation,即软件仿真,没有硬件调试的target。你应重建一个project,在引导中选择硬件调试的target连接。
作者: qutao88    时间: 2006-9-6 09:16

我这没有可调试硬件,只有一个可以下载程序用的一个bdm头,前面做的那个串口查询程序,也是用的full chip simulation,我也没有仿真,直接编译生成S19后,下到里面就可以用,这个为什么不行,我的程序有没有什么问题,
作者: strongchen    时间: 2006-9-6 09:35

full chip simulation和硬件调试用的是同一个软件,但是可以在调试界面中设置是采用软件仿真还是硬件调试。有没有写入硬件在调试过程中应该可以看得出来的。
作者: qutao88    时间: 2006-9-6 09:45

现在我觉的程序是写进去了,因为我在main处设置A口,就是一个小灯,都是可以的,在中断程序中,也是有小灯的闪烁,可是当用串口发数据时,小灯没有反应,所以我觉的没有进入中断,还有我觉的如果程序没有问题,用不用硬件调试是没有关系的,它在片子里应能运行的,所以现在我想是不是程序那有问题,请你给看看,或者是其它那方面的问题,请你指导一下.




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