This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我想知道 CPU 定时器示例中是否需要在 CPU_timer2_ISR 中使用 EALLOW 和 EDIS 指令以及在 CPU_Timer1_ISR 中使用 EDIS (controlSUITE/device_support/F2803x/V130/DSP2803x_examples_ccsv5/cpu_timer/example_2803xCpuTimer.c)。 根据 TRM (并且只是尝试删除它们)、我 认为不需要它们。
提前感谢。
罗马
是的、正确的做法是、此特定用例不需要这些说明。
下面是有关如何使用 TMS320C28x CPU 和指令集(修订版 F) 第2.4节中的指令 EALLOW 和 EDIS 的代码片段
EALLOW—仿真访问使能位。 该位、当置位时、启用到仿真和其它受保护寄存器的访问。 通过 EALLOW 指令置位该位、通过 EDIS 指令清零该位。 请参阅特定器件的数据表、以确定受保护的寄存器。 当 CPU 处理一个中断时、EALLOW 的当前值被保存在堆栈上(当 ST1被保存在堆栈上时)、然后 EALLOW 被清除。 因此、在中断服务例程(ISR)开始时、禁用对受保护寄存器的访问。 如果 ISR 必须访问受保护的寄存器、它必须包含一条 EALLOW 指令。 在 ISR 结束时、EALLOW 可由 IRET 指令恢复。
我还强烈建议您参考 C2000Ware 中提供的示例。 这些是目前支持的最新器件支持文件和示例。
此致、
Ozino
您好、Ozino、
非常感谢您的回答。 它澄清了我的疑问。 顺便说一下、我已经下载了最新版本的 C2000Ware、它在同一示例中仍有这些说明。
此致、
Román μ A
您好 Román、
很高兴听到这个消息。 我已经向 C2000Ware 人员提交了一个 TT、让他们了解这一点。
此致、
Ozino