+关于c6748的中断和异常
今天主要说一下c6748的中断和异常的处理。所谓中断,就是改变程序的执行流程,提高CPU对内部和外部事件的处理能力(算是自己的个人理解)。异常吧,就是不正常吗,最常见的就是程序跑飞现象,简单来说,就是没有按照程序执行相应的操作,或者说是因为设置出现冲突,也会引发异常。
C6748的中断类型有4种,c6000系列的应该都差不多。分别为中断优先级别最高的复位中断,次中断优先级不可屏蔽中断(NMI),然后就是12个可屏蔽中断,还有就是与可屏蔽中断对应的可屏蔽异常(EXCEP)。下表为c6748的中断结构。
说完结构,讲一下中断事件,c6748的中断事件分为独立事件和组合事件,c6748独立事件一共有128个,下图为中断事件的表,其中0-3为组合事件,每个组合事件可包含32个事件。119-127为与内存有关的事件。118是断电控制器,主要是用来降低系统的功耗,因为c6748怎么说都是低功耗的高性能芯片,如果这点都做不到那就不敢称为高级了吧,其他的事件就比较不太常用,自己查数据手册看看吧。
C6748的错误事件处理个人还是蛮喜欢的,只有当一个错误消除之后,新的错误才会发生。因为这样就能很快找到错误的起点位置,然后处理,而且也避免以一大堆错误同时出现,不知从何下手的困扰。下图为c6748对错误事件的处理机制。
C6748的中断向量可以存储在dsp存储器的任何存储空间,只要满足入口地址对齐到1k字节即可,当然也还是会有一些限制的,他只能够存储8条32位指令,所以通常会用到跳转,比较标准的格式就是预留两条指令一条用于跳转,一条用于延时。对于中断嵌套,CPU一般不允许这种操作,因为如果某些设置,可能会导致处理异常。而且对于硬件而言,就只能是嵌套不可屏蔽中断,如果想进行可屏蔽中断之间的嵌套,还需要进行一些软件方面的操作和寄存器等相关操作。
中断差不多就是就这样,关于异常的处理其实和上述中断中断处理机制差不多,再次就不赘余了。
正在研究
能发个光盘资料学习学习啊qq276808640