【DSP】DSP2833x.h中定义的指令EINT、DINT、ERTM、DRTM、EALLOW、EDIS、ESTOP0的含义

今天接触了DSP中一些特殊的指令,在此总结一下:

【DSP】DSP2833x.h中定义的指令EINT、DINT、ERTM、DRTM、EALLOW、EDIS、ESTOP0的含义_第1张图片

首先意识到,这些其实是汇编指令

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位,来防止杂散代码或指针破坏寄存器内容。
 

你可能感兴趣的:(DSP,汇编指令)