标题: 关于.prm文件修改的疑问[求助] [打印本页]
作者: sijiaoshe008 时间: 2006-9-18 14:19 标题: 关于.prm文件修改的疑问[求助]
我的.prm 文件修改如下:
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 an Assembly application. */
//INIT Entry /* for assembly applications: that this is as well the initialization entry point */
//can通信相关中断向量
VECTOR ADDRESS 0xFFB2 MSCAN0_receive
main.c中函数说明如下:
#pragma TRAP_PROC
void MSCAN0_receive(void){
}
出错信息如下:
link error: l1108: initializing of vector MSCAN0_receive failed because of over-or underflow of vector value
作者: seuafu2005 时间: 2006-9-18 15:19
void MSCAN0_receive(void){
}
函数前面要加上interrupt,不然编译器不认为是中断函数
作者: sijiaoshe008 时间: 2006-9-18 16:49
斑竹阿,我记得好像中断服务例程有两种定义方式,一种就是用#pragma TRAP_PROC,另一种是用关键字interrupt说明的,应该不是这个原因吧。我用的是dp256b的片子,0xFFB2 也确实是can0_receive的中断入口地址,我就是不明白这怎么能出错呢,能在帮忙给看看吗?
作者: seuafu2005 时间: 2006-9-18 17:31
interrupt是一定要加的,表明中断程序,否则你看汇编的返回指令是rts,不是中断返回的rti。
你用的是S12的单片机?那中断函数要放在非分页的空间里面
你在中断函数前面加上
#pragma CODE_SEG NON_BANKED
作者: sijiaoshe008 时间: 2006-9-18 17:51
呵呵,正如斑竹所言,我用的是s12,不过我是用C语言写的
斑竹说得对阿,函数说明有问题,我是看人家的例子写的,没有太仔细考虑函数声明的事,老是想着地址有问题,因为错误提示是这么说的,看样子下次要小心了。非常感谢斑竹的帮忙,呵呵
作者: qutao88 时间: 2006-9-19 09:56
我想做个can的程序,可是对S12中的can模块结构不是很清楚,看了些资料,可是看的不太明白,还请给指点一下,给个说明资料和例子程序.
作者: sijiaoshe008 时间: 2006-9-19 10:03
不好意思了,我看的资料是公司内部的,不能给你,我也是刚开始做这些东西,有什么问题可以提出来,大家讨论一下
作者: qutao88 时间: 2006-9-19 10:36
可以加你到QQ吗,我的QQ:263303370
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |