今天接触了DSP中一些特殊的指令,在此总结一下:
首先意识到,这些其实是汇编指令
1、EINT、DINT
作用:EINT开中断,DINT关中断
2、ERTM、DRTM
作用:ERTM使能调试事件,DRTM禁止调试事件
3、ESTOP0
这是一个汇编指令,是用于DSP仿真的,它有两个方面的知识:
(1)当用仿真器连接时如果ESTOP0置位(ESTOP0=1),那么整个DSP停止运行(相当于断电指令,程序跑到这里就会停止)。(2)当不用仿真程序时,在程序中写这条指令相当于NOP(空指令),只是占了CPU的一个周期而已
4、EALLOW和EDIS
作用:EALLOW设置状态寄存器1的C6位,此时处于禁写状态的寄存器解禁
EDIS清除状态寄存器1的C6位,寄存器重新恢复禁止写入状态
详解:DSP由于在上电复位之后,状态寄存器基本上都是清零,而这样的状态下正是上述特殊寄存器禁止改写的状态。为了能够对这些特殊寄存器进行初始化,所以在对上述特殊寄存器进行改写之前,一定要执行汇编指令asm(“EALLOW”)或者宏定义EALLOW来设置状态寄存器1的C6位,在设置完寄存器之后,一定要注意执行汇编指令asm(“EDIS”)或者宏定义EDIS来清除状态寄存器1的C6位,来防止杂散代码或指针破坏寄存器内容。