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.

EALLOW和EDIS必须要配对使用吗?

Other Parts Discussed in Thread: CONTROLSUITE

我的代码如下

EALLOW;

DmaRegs.CH2.MODE.bit.CHINTE = 0;  //配置SPI寄存器;

MyFun();

...

EDIS;

MyFun()函数如下:

MyFun()

{

EALLOW;

 DmaRegs.CH2.BURST_SIZE.all = 0;        // 1 word/burst
 DmaRegs.CH2.SRC_BURST_STEP = 0;        // no effect when using 1 word/burst
 DmaRegs.CH2.DST_BURST_STEP = 0;        // no effect when using 1 word/burst

EDIS;

}

发现这样使用的话,程序不对,把MyFun()中的EALLOW和EDIS去掉就对了,为什么?是不是EALLOW和EDIS不能嵌套,只能成对出现?

EALLOW

EDIS;

是可以的,而

EALLOW;

....

EALLWOW;

EDIS;

...

EDIS;

不行?

  • 你好,

    DSP中一些配置寄存器是受保护的,无法直接操作。在对这些寄存器进行修改之前,需要先去掉保护功能。而保护状态是由状态寄存器中EALLOW标志来指示的。汇编指令“EALLOW”就是将该标志位置位,允许对受保护的寄存器操作。 EALLOW(Edit allow)一般和EDIS(Edit disable)配套使用,在对受保护的寄存器操作之后,用EDIS恢复寄存器的被保护状态

  • 按道理是需要成对使用的,不过TI的有些例子里面就可以不成对使用,呵呵,不信你可以看看28335的cpu_timer例子的中断程序。。。。

  • 例程里都是成对使用的,你说的是controlSUITE里的例程吗?你说下具体的文件路径,具体哪个文件哪一行?

  • 请问是否有对应的文档介绍"EALLOW"和“EDIS”的功能和使用说明?

  • 下载这个文档:

    TMS320C28x Optimizing C/C++
    Compiler v6.2.4 user guide