历史上的今天
今天是:2025年01月19日(星期日)
2021年01月19日 | 快速学Arm(21)--中断向量VIC控制器VIC[3]
2021-01-19 来源:eefocus
说是快速学习,其实也不快,学这东西想快起来看了不太容易.
有很多中中断源都有可能产生中断,对于2400大概有下面的中断源
中断源 VIC通道号
WDT 0
--保留给软件中断 1
ARM Core 2
ARM Core 3
TIMER0 4
TIMER1 5
UART0 6
UART1 7
PWM0,PWM1 8
I2C0 9
SPI,SSP0 10
SSP1 11
PLL 12
RTC 13
系统控制(外部中断) 14,15,16,17
ADC0 18
I2C1 19
BOD 20
Ethernet 21
USB 22
CAN 23
SD/MMC 24
GP DMA 25
Timer 2 26
Timer 3 27
UART 2 28
UART 3 29
I2C2 30
I2S 31
![快速学Arm(21)--中断向量VIC控制器VIC[3] 快速学Arm(21)--中断向量VIC控制器VIC[3]](https://8.eewimg.cn/news/uploadfile/2021/0119/20210119112625574.gif?imageView2/2/w/550)
我们先不来接触那些真正的接口,因为接触到真正接口的时候,如果没有这些概念,可能会很难理解.先这样浏览一下相关的知识,然后一点点的往更细致去研究,可能对理解问题更有好处.
< 如果在片内RAM当中运行代码并且引用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0.这样做是因为所有的异常向量都位于地址0x0及以上.通过将寄存器MEMMAP(位于系统控制模块中)配置为RAM模式来实现这样一点. 虽然可以选择多个中断源来产生FIQ请求,但是只有一个专门的中断服务程序来服务响应所有的FIQ请求.因此,如果分配为FIQ的中断多于一个,FIQ中断服务程序就必须读取VICFIQStatus的内容来决定如何处理中断请求.不过还是建议只讲一个中断分配为FIQ,多个FIQ中断源会增加中断延迟. 在中断服务程序执行完后,对外设中断标志的清零会对VIC寄存器(VICRawIntr,VICFIQStatus,VICIRQStatus)当中的对应位产生影响.另外为了能够服务下次中断,必须在中断返回之前对VICVectAddr寄存器执行写操作.该写操作将清零内部中断优先级硬件当中对应的中断标志. 通常情况下要禁止VIC中断,必须清零VICIntEnClr寄存器中的对应位,该操作时VICIntEnable寄存器对应位清零.这同样应用于VICSoftInt,VICSoftIntClear.VICSoftIntClear将会是VICSoftInt中对应位清零.例如:VICSoftInt=0x0000 0005并且必须将bit0清零,则使用VICSoftIntClear=0x0000 0001即可实现操作.在执行VICSoftIntClear=0x0000 0001之前,要先执行VICSoftIntClear=0x0000 0000.记住. VICIntSelect寄存器按照上面图的顺序来选择哪一个是IRQ,哪个是FIQ,但对应的位为1时此中断为FIQ,否则则是IRQ,VICIntEnable也是按照这个顺序来决定哪个中断可以使能. 在21xx系列中有向量控制寄存器VICVectCntl0~VICVectCntl15分别代表16个优先级,即VICVectCntl0代码slot0优先级(最高优先级),VICVectCntl1代表slot1优先级.在VICVectCntl寄存器中,低五位代表的是哪一个中断,例如,如果VICVectCntl0=0x0F,则从上面图中的顺序知道,ENT1即外部中断1的优先级为最高.VICVectCntl中的第6位代表IRQ是否使能,1代表使能.而在2400系列中,使用VICVectPriority0~VICVectPriority31来装载上图中对于优先级.例如如果VICVectPriority31装载的数字为0x12,即十进制的18,按上图的顺序,则AD0的优先级为31,即最低优先级.VICVectAddr0~VICVectAddr15(在2400系列中是31),每个寄存器是与VICVectCntl(VICVectPriority)向对应的.如果没有设置这组寄存器,则在210x系列中使用VICDevVectAddr寄存器,在2400中暂时没找到对应的寄存器,不过没关系,我们后面研究得时候也许会涉及到,到时候再说.
史海拾趣
|
大家新年快乐! 我的平台是pxa270+wince5.0. 现在键盘驱动遇到了一点小问题,请大家帮帮忙。 通常键盘上,shift+3应该是显示#号,但是我目前要做的shift+3要显示欧元符号,#被移到其他按键上去了。 我修改了键盘的影射结构,将原来#的位置用欧 ...… 查看全部问答> |
|
本人刚进公司,被分到做vxworks软件,原来没有接触过vxworks,所以也不是很了解,请各位帮忙讲解一下,主要是vxworks是做什么的,它的应用平台,当前形势,以及怎么去学,主要按那个方向去学习,如果将来想跳槽应该跳哪个方向的,谢谢哈^-^… 查看全部问答> |
|
6通道(即5+1)球幕投影系统主要是利用投影融合技术、曲面变形处理技术、多机同步技术,通过6台投影机精准定位投影实现的,属于投影类工程项目(以下简称6通道)。 单通道系列数字天象仪主要依靠投影机,球面镜头、计算机和国际规范 ...… 查看全部问答> |
|
在CCS4下新建Piccolo TMS320F28027怎么始终有错误不能进入DEBUG下 用自带的例子是可以进入DEBUG,可是自己新建的就是有错误,请熟悉CCS4的进来讲讲那里设置要重点设置的?… 查看全部问答> |
|
一、做个电子负载 板子早就打好了,这10块板一直在睡着,没有动 这次准备使用C2000 LaunchPad把它做起来。 二、做个数字电源 原来使用F28035做的BUCK部分,性能不错。这次使用F28027来做,只做BUCK型降压的电源。 PCB还没有做,或者使用试 ...… 查看全部问答> |




