标题: 关于isr_vectors的问题 [打印本页]
作者: zxdaemon 时间: 2007-5-25 07:24 标题: 关于isr_vectors的问题
今天看到了中断向量表的定义文件
isr_vectors.c,应用应该没有问题,不过对里面这两句定义的数据结构不是很理解。。。。
typedef void (*near tIsrFunc)(void);
const tIsrFunc _vect[] @0xFF80 = { /* Interrupt table */
UnimplementedISR, /* vector 63 */
.......
UnimplementedISR, /* vector 01 */
_Startup /* Reset vector */
};
[此贴子已经被作者于2007-5-25 7:24:01编辑过]
作者: huifreescale 时间: 2007-5-25 14:38
关注...
作者: strongchen 时间: 2007-5-25 15:20
你所不理解的是那部分呢?
作者: zxdaemon 时间: 2007-5-27 08:35
红色字体标记的typedef定义的tIsrFunc的类型
我理解的是定义一个函数指针数组的意思
const void ( * near _vect[] )( void) @0xFF80 = {} ......
不知道是不是这个意思
[此贴子已经被作者于2007-5-27 8:35:56编辑过]
作者: zxdaemon 时间: 2007-5-27 08:40
我在学HCS12上写uc/os的中断
不知道大家有没有这个方面的资料或是例程什么的
介绍来看看
作者: saserking 时间: 2007-5-27 16:01
中断向量表就是储存中断服务函数入口地址的
不过直接用interrupt关键字或者改prm文件吧,那样方便些
作者: zxdaemon 时间: 2007-5-27 16:20
1.interrupt关键字+中断向量号+isr函数
2.interrupt关键字+isr函数(isr在prm中VECTOR ADDRESS 映射)
3.#pragma TRAP_PROC声明(isr在prm中VECTOR ADDRESS 映射)
4.interrupt关键字+isr函数(isr在vector.c文件中定义函数指针数组 映射)
作者: huifreescale 时间: 2007-5-28 10:22
斑主: vectors.c只有在用PE的时候 才有 ...如果不用PE..如何查到中断向量表..是不是自己添加呢..
作者: zxdaemon 时间: 2007-5-28 10:26
“vectors.c只有在用PE的时候 才有”
不会把,vectors.c不是可以直接编译进行链接的嘛
等待版主。。。
作者: huifreescale 时间: 2007-5-28 10:29
还有 一点不明白的..书上讲
为了保证监控程序不至于被应用程序调试过程中意外擦掉 监控程序应该用 FLASH 写保护?如何做到写保护?
作者: strongchen 时间: 2007-5-28 10:32
如果不用PE,则需要用户自己定义中断向量。网友zxdaemon在上面给出了几种不同的定义中断向量的方法。最简单的方法就是用中断号直接在程序中定义即可,如:
void interrupt 10 ISR_Int10(void){
}
中断号可以在数据手册的中断向量表中查出。复位的中断号为0,其余的依次递增。
作者: huifreescale 时间: 2007-5-28 13:31
谢谢..版主..
作者: upczhaokai 时间: 2007-5-29 17:17
怎样设置中断向量??
我编程的时候怎么没有vector.c的文件??
作者: strongchen 时间: 2007-5-30 09:45
一般是不需要vector.c文件的。最简单的方法就如我上面的帖子中说的,在程序中用中断号直接定义就可以了。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |