关于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/
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮