DSP

关于EALLOW和EDIS指令

2019-07-13 13:00发布

        开始了编程后,你就会发现了一个问题,为什么每次都有EALLOW和EDIS,这个起什么作用,我们看了DSP原理和有关DSP的C语言编程后,怎么没有说明这个起什么作用呢,就是有的书里说了,也是含糊其辞的,不明白是什么意思。今天我就把EALLOW的资料给大家共享一下,一起学习。     TI 的 DSP 为了提高安全性能,将很多关键寄存器作了保护处理。通过状态寄存器 1(ST1)的位6设置与复位,来决定是否允许DSP指令对关键寄存器进行操作。     这些关键寄存器包括器件仿真寄存器、FLASH寄存器、CSM寄存器、PIE 矢量表、系统控制寄存器、GPIO MUX 寄存器、eCAN 寄存器的一部分。     DSP由于在上电复位之后,状态寄存器基本上都是清零,而这样的状态下正是上述特殊寄存器禁止改写的状态。为了能够对这些特殊寄存器进行初始化,所以在对上述特殊寄存器进行改写之前,一定要执行汇编指令asm(“EALLOW”)或者宏定义EALLOW来设置状态寄存器1的C6位。在设置完寄存器之后,一定要注意执行汇编指令asm(“EDIS”)或者宏定义EDIS来清除状态寄存器1 的C6 位。     在 device.h文件中可以找到#define  EALLOW asm(" EALLOW")语句。     转自:http://pangqicheng123.blog.163.com/blog/static/8233547620114111235243/