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.
Hi,
I just started working on C2000 MCU. I am using Launch Pad Delfino TMS320F28377S. I have a question regarding EALLOW and EDIS. If I write `EALLOW;` and then calls a function and there I have EALLOW; and EDIS; pair. After returning back, is my EALLOW still valid ?
In examples, for initialization we call InitSysCtrl();
F2837xS_SysCtrl.c contains the below mentioned code.
EALLOW; // // Enable pull-ups on unbonded IOs as soon as possible to reduce power // consumption. // GPIO_EnableUnbondedIOPullups(); CpuSysRegs.PCLKCR13.bit.ADC_A = 1; CpuSysRegs.PCLKCR13.bit.ADC_B = 1; CpuSysRegs.PCLKCR13.bit.ADC_C = 1; CpuSysRegs.PCLKCR13.bit.ADC_D = 1; // // Check if device is trimmed // if(*((Uint16 *)0x5D1B6) == 0x0000){ // // Device is not trimmed--apply static calibration values // AnalogSubsysRegs.ANAREFTRIMA.all = 31709; AnalogSubsysRegs.ANAREFTRIMB.all = 31709; AnalogSubsysRegs.ANAREFTRIMC.all = 31709; AnalogSubsysRegs.ANAREFTRIMD.all = 31709; } CpuSysRegs.PCLKCR13.bit.ADC_A = 0; CpuSysRegs.PCLKCR13.bit.ADC_B = 0; CpuSysRegs.PCLKCR13.bit.ADC_C = 0; CpuSysRegs.PCLKCR13.bit.ADC_D = 0; EDIS;
Here, Call to GPIO_EnableUnbondedIOPullups() directs to the following code:
{ EALLOW; GpioCtrlRegs.GPAPUD.all = ~0xFFC003E3; //GPIOs 0-1, 5-9, 22-31 GpioCtrlRegs.GPBPUD.all = ~0x03FFF1FF; //GPIOs 32-40, 44-57 GpioCtrlRegs.GPCPUD.all = ~0xE10FBC18; //GPIOs 67-68, 74-77, 79-83, 93-95 GpioCtrlRegs.GPDPUD.all = ~0xFFFFFFF7; //GPIOs 96-127 GpioCtrlRegs.GPEPUD.all = ~0xFFFFFFFF; //GPIOs 128-159 GpioCtrlRegs.GPFPUD.all = ~0x000001FF; //GPIOs 160-168 EDIS; }
Now after returning back to InitSysCtrl() function, Is EALLOW; still active as the following code requires it to be that way. And there are many these kind of EALLOW and EDIS pair in sub functions. of Initialisation file.
Thank you
Hi Shantanu,
Yes, after retuning from function EALLOW will remain active as long as inside function it does not get disable. But we recommend users to avoid doing this because that defeats the purpose of EALLOW protection for key registers.
Regards,
Vivek Singh