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.

CCS/TMS320F28377D: EALLOW bit not updated in ST1 register: CCS Version: 9.3_TMS320F28377D

Part Number: TMS320F28377D

Tool/software: Code Composer Studio

Hi TI experts,

I have just started system initialization of processor TMS320F28377D using CCS Version: 9.3.0.00012.

Here,I am configuring CPU1.

The problem what i am facing is that I am not able to update the EALLOW bit in the CPU core register (ST1 : EALLOW).

The value of EALLOW bit read through the CPU registers is 0 in debug window even after running the code.FYI,The instruction  asm("EALLOW"); is present in the code.

Also,missing clock bit MCLKSTS is going to 1 frequently. CPU Reset through CCS not helped to clear MCLKSTS.

ClkCfgRegs.MCDCR.bit.MCLKCLR=1; also not helping. 

Similarly,the values not getting updated in the below registers.

ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL =01;

ClkCfgRegs.SYSPLLMULT.all = 0x00000028; // test code

Also,I have ensured UNLOCKING the following registers by reading registers in Debug window.

DEVCFGLOCK1

CLKCFGLOCK1

CPUSYSLOCK1

Emulator connection is OK and code is running but giving unexpected results which provides some arbitrary clock frequency. 

Kindly provide your suggestions to get rid of the above issue.

regards,

Ramesh P

  • Hi Ramesh,

    Looks like you are using XTAL as a clock source (OSCCLK) and for some reason it seems to be dead, as a result you are getting MCLKSTS=1, and even after clearing it gets set again, as the clock is still dead.

    Please scope the XTAL clock going into the device before you use it as a clock source (OSCCLK).

    Regards,

    Nirav

  • Hi Nirav,

    Not only for external crystal,but also for INTOSC2 ,I am getting MCLKSTS=1,even after clearing the same through hardware RESET.

    Software RESET by CCS not helped to clear the MCLKSTS bit.

    The major issue is that i am not able to update the CPU registers as per the code.

    Especially,EALLOW bit in the ST1 register is not SET even after the instruction asm("EALLOW");

    I assume that the problems associated with updation of clock settings and other registers will be solved after making EALLOW=1.

    Pls provide your suggestions how to enable bit EALLOW =1 in ST1 register.

    regards,

    Ramesh P

  • Ramesh,

    I'll just point out that if you use asm("EALLOW"); in your code you should have received an assembler warning.  It translates into a label, not an instruction, because the assembler treats anything which starts in the first column as a label.  To place an assembly instruction in your code you'll need at least one white-space character before the first letter.  Try:

    asm(" EALLOW");

    Regards;

    Richard 

  • Hi Richard,

    Thanks for your swift reply.

    Now i am able to update the registers.

    Already,the instruction was written as asm(" EALLOW"); as you suggested.

    Still,I could not figure it out how the issue has been solved.

    I am checking the code once again critically.

    regards,

    Ramesh P