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

关于isr_vectors的问题

关于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编辑过]

关注...
你所不理解的是那部分呢?
海纳百川  有容乃大

红色字体标记的typedef定义的tIsrFunc的类型

我理解的是定义一个函数指针数组的意思

const void ( * near _vect[] )( void) @0xFF80 = {} ......

不知道是不是这个意思

[此贴子已经被作者于2007-5-27 8:35:56编辑过]

我在学HCS12上写uc/os的中断
不知道大家有没有这个方面的资料或是例程什么的
介绍来看看
中断向量表就是储存中断服务函数入口地址的

不过直接用interrupt关键字或者改prm文件吧,那样方便些
1.interrupt关键字+中断向量号+isr函数
2.interrupt关键字+isr函数(isr在prm中VECTOR ADDRESS 映射)
3.#pragma TRAP_PROC声明(isr在prm中VECTOR ADDRESS 映射)
4.interrupt关键字+isr函数(isr在vector.c文件中定义函数指针数组 映射)
斑主: vectors.c只有在用PE的时候 才有 ...如果不用PE..如何查到中断向量表..是不是自己添加呢..
“vectors.c只有在用PE的时候 才有”

不会把,vectors.c不是可以直接编译进行链接的嘛

等待版主。。。
还有 一点不明白的..书上讲 
为了保证监控程序不至于被应用程序调试过程中意外擦掉 监控程序应该用 FLASH 写保护?如何做到写保护?
如果不用PE,则需要用户自己定义中断向量。网友zxdaemon在上面给出了几种不同的定义中断向量的方法。最简单的方法就是用中断号直接在程序中定义即可,如:

void interrupt 10 ISR_Int10(void){
}

中断号可以在数据手册的中断向量表中查出。复位的中断号为0,其余的依次递增。
海纳百川  有容乃大
谢谢..版主..
怎样设置中断向量??
我编程的时候怎么没有vector.c的文件??
一般是不需要vector.c文件的。最简单的方法就如我上面的帖子中说的,在程序中用中断号直接定义就可以了。
海纳百川  有容乃大
返回列表