历史上的今天
今天是:2025年01月19日(星期日)
2021年01月19日 | 快速学Arm(19)--中断向量控制器VIC[1]
2021-01-19 来源:eefocus
技术生涯,半生荣辱,每天都是生活在痛并快乐中,我讨厌的东西总是不得不天天面对,麻木和无所谓也就是这样产生的.但对于技术的好奇和追求是我下半生依然不会停止的事情,虽然驽钝,只要每日有所得,也有所追求足以.
这两天在忙于另外一个程序,由于上家的延误,使我又有了点空闲,继续来学习已经不是新事物的新事物.:-)
前几天决定了从简单的单任务Arm程序学起,放下手中的uC/OS-II书籍,发现手中又少了可以阅读的东西.好在网上有很多可以参考的资料,只是这些资料不是专为LPC2400写的.不过没关系,手里还有LPC2400的datasheet,对照的看就可以了.Arm的原理大同小异,只是型号之间有所区别罢了.
下面的这本书对初学者很有帮助,在网上狂搜了一通,终于找到了电子档,我想这应该不算我盗版吧?
深入浅出ARM7-LPC213x_214x(上).pdf
深入浅出ARM7-LPC213x_214x(下).pdf
自己找找,应该能在网上翻到.我不喜欢按照数的顺序来读,而是挑选自己认为正确的顺序来读.我们一起来研究一下中断向量控制器吧,也就是英文缩写的"VIC"
向量中断控制器(VIC,Vectored Interrupt Controller):
.具有32个中断请求输入,可将其分为3类:FIQ,向量IRQ,非向量IRQ.可编程分配机制意味着不同外设的中断优先级可以动态分配并调整.
.快速中断请求(FIQ,Fast Interrupt reQuest):要求有最高的优先级.如果分配给FIQ的请求多于1个,VIC将中断请求"相或"后像ARM处理器产生FIQ信号.当只有一个中断被分配为FIQ时,可实现最短的FIQ等待时间.因为FIQ服务程序只有简单地启动器件的处理器就可以了.如果分配给FIQ级的中断多于1个,FIQ服务程序需要取FIQ状态寄存器啦识别产生中断请求的FIQ中断源.
.向量IRQ(Vector IRQ)具有中等优先级.该级别可分配32个的16个.32个请求中的任意16个向量IRQ slot中的任意一个.其中slot0具有最高优先级,而slot15则为最低优先级.
.非向量IPR(Non-vectored IRQ)的优先级最低:
.VIC将所有向量和非向量的IRQ"相或",将相或的结果向ARM处理器产生IRQ信号.IRQ服务程序可通过读取VIC的一个寄存器立即启动并跳转到相应的地址.如果有任意一个向量IRQ发出请求,VIC这提供最高优先级请求IRQ服务程序的地址,否则提供默认程序的地址.该默认程序有所有非向量IRQ共用.默认程序可读取另一个VIC寄存器以确定哪个IRQ被激活.
.VIC中所有的寄存器都为字寄存器,即32bit,不支持字节和半字的读和写操作.
总结一下:
.最多32个中断请求输入
.16个向量IRQ中断
.16个优先级,可动态分配给中断请求.
.可产生软件中断
关于VIC还有很多内容要学,看了后继续把笔记写下来,与大家共勉.
史海拾趣
|
系统简介 SHX-DSP2812开发板是基于TMS320F2812的学习开发平台,它将TMS320F2812的功能发挥的淋漓尽致,而且本板所配的用户手册详实易懂,是初学者学习2812 的首选之品。 系统资源 DSP 处理器TMS320F2812 ,最高工作频率150MHz; ...… 查看全部问答> |
|
请教各位高手: 我想在WINCE4.0上发布一个可供远程浏览的交互式网页,网页上的数据从ARM9的ISA总线上过来并存在内存中,希望在网页中能浏览并修改。 我看了“成都英创网页上有相关调用COM组件进行远程控制的例子”,那个例子中网页(用ASP实现) ...… 查看全部问答> |
|
感觉linux在嵌入式方面被吵的很火,wince就差点了,不知道实际应用上究竟那个更流行,更使用,wince 和 linux各自的优势,(linux是免费开源的就不用强调了,请按行业方面介绍一下)。wince下的开发,是不是主要在应用层啊。底层用的多吗? … 查看全部问答> |
|
我的开发板的cpu是s3c2410的,操作系统是wince5.0。买了一个gps接收器和一个蓝牙棒(板子上不带蓝牙),将蓝牙棒和板子的usb连接,wince下的一个蓝牙管理程序可以找到gps,但是我用OZi for ppc的软件只支持com口的数据传输,在笔记本上蓝牙口可以自 ...… 查看全部问答> |




