看一些讲DSP28335的书:
《手把手教你学DSP ——基于TMS320F28335》或是《普中DSP28335开发攻略》,
书里会给出一些函数代码、初始化代码。有时我们会看到例如这种:
void DC_Motor_Init(void)
{
EALLOW;
... //DC_Motor 第1路端口配置
... //DC_Motor 第2路端口配置
EDIS;
...
}
EALLOW、EDIS都是什么意思?为什么总感觉它们成对出现在代码中? # 参考链接
答:EALLOW(Edit allow)一般和 EDIS(Edit disable)配套使用,
F2812中有⼀些配置寄存器是受保护的,⽆法直接操作(任意写)。在对这些寄存器进⾏修改之前,需要先去掉保护功能。EALLOW指令用于允许对寄存器进行操作,即解除寄存器保护功能。在对受保护的寄存器操作之后,⽤EDIS指令恢复寄存器的被保护状态,禁止再操作被保护的寄存器。(C2000系列DSP以2812和28335应用最广,F28335性能优于F2812)
EALLOW; | (Edit ALLOW),允许操作被保护的寄存器 |
EDIS; | (Edit disable), 禁止操作被保护的寄存器 | 开起写保护 |
INTM 全局中断屏蔽位 EINT 给INTM置0,使能全局中断 DINT 给INTM置1,禁止全局中断 DBGM 调试启用屏蔽位 ERTM 使能调试事件,允许仿真器调试和实时访问内存 DRTM 禁止调试事件 EALLOW 允许操作被保护的寄存器 EDIS 禁止操作被保护的寄存器 ESTOP0 当用仿真器连接时如果ESTOP0置位(ESTOP0=1),那么整个DSP停止运行