TI中文支持网
TI专业的中文技术问题搜集分享网站

280049 CLA中怎么访问受EALLOW保护的寄存器

在主CPU中访问受EALLOW保护的寄存器,是通过EALLOW,EDIS指令进行的,两条指令也有具体的宏定义:

那么在CLA访问这些寄存器应该怎样操作呢?看《TMS320F28004x Piccolo Microcontrollers Technical Reference Manual_RevC》说需要使用MEALLOW,MEDIS 指令,但是没找到这两条指令的定义。请问这两两天指令应该怎样定义呢?

Aiden:

回复 Green Deng:

谢谢你的回复。

我的测试结果:

CAL的测试代码:

#pragma FUNC_ALWAYS_INLINE(LLC_PUMP_PWM)

inline void LLC_PUMP_PWM(void)

{

LLC_DRIVE_ENB();

// Pri HB drive

MEALLOW;

EPwm4Regs.TZCTL.bit.TZA = TZ_FORCE_LO; // Force EPWMxA to a low state

EPwm4Regs.TZCTL.bit.TZB = TZ_NO_CHANGE; // Do nothing, no action is taken on EPWMxB

EPwm5Regs.TZCTL.bit.TZA = TZ_FORCE_LO; // Force EPWMxA to a low state

EPwm5Regs.TZCTL.bit.TZB = TZ_NO_CHANGE; // Do nothing, no action is taken on EPWMxB

MEDIS;

}

证明

#define MEALLOW __asm(" MEALLOW")

#define MEDIS __asm(" MEDIS")

是可以的。

另外MEALLOW定义会与“f28004x_cla.h”文件中的 结构体定义中的成员“Uint16 MEALLOW:1; // 11 MEALLOW Status”冲突,编译会报错,

我是把结构体里的MEALLOW命名修改了后进行测试。

不知道TI标准的做法是怎样的,没要找到在CLA操作EALLOW保护寄存器的例程。

赞(0)
未经允许不得转载:TI中文支持网 » 280049 CLA中怎么访问受EALLOW保护的寄存器
分享到: 更多 (0)