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.

TMS320F280049C: RAM address errors and NMI

Part Number: TMS320F280049C


1) I was able to inject ECC, double bit and parity error. Therefore, I simply used MemCfg_setTestMode on ECC protected and
parity protected ram, e.g.:


MemCfg_setTestMode(MEMCFG_SECT_M1, MEMCFG_TEST_WRITE_DATA);
// inject 2 bit error
eccTest += 3U;
MemCfg_setTestMode(MEMCFG_SECT_M1, MEMCFG_TEST_FUNCTIONAL);



Is something similar possible for address errors on RAM? If yes, how.


2) What happens if I do not enable SysCtl_enableNMIGlobalInterrupt()? Does ECC still work?
Is it possible to deactivate ECC and Parity (not that I want to I am just curious).

3)
Should I deactivate the watchdog in this function?
Where is Interrupt_nmiHandler registered?

static void Interrupt_nmiHandler(void)
{
//
// A non-maskable interrupt has occurred, indicating that a hardware error
// has occurred in the system. You can use SysCtl_getNMIFlagStatus() to
// to read the NMIFLG register and determine what caused the NMI.
//

// watchdog disable?
ESTOP0;
for(;;)
{
;
}
}

  • Hi,

    Is something similar possible for address errors on RAM? If yes, how.

    You can always change the address ECC value when you are in ECC mode. Right?

    2) What happens if I do not enable SysCtl_enableNMIGlobalInterrupt()? Does ECC still work?
    Is it possible to deactivate ECC and Parity (not that I want to I am just curious).

    Yes, ECC still works. BTW, NMI is always enabled in BOOTROM code and once enabled it can not be changed.

    Is it possible to deactivate ECC and Parity (not that I want to I am just curious).

    No, ECC/Parity feature can not be disabled. 

    Should I deactivate the watchdog in this function?

    Which function ? 

    Where is Interrupt_nmiHandler registered?

    Can you please provide more detail on this ? NMI like other interrupts are part of PIE vector table, if that is what you were asking.

    Regards,

    Vivek Singh

  • You can always change the address ECC value when you are in ECC mode. Right? Is this a question?

    So what do I need to do? 

    MemCfg_setTestMode(MEMCFG_SECT_M1, MEMCFG_TEST_WRITE_ECC);

    And then? Do you have sample code?

  • There is data ECC and address ECC. If you want to check the logic related to address ECC then instead of corrupting data ECC, corrupt address ECC. Please refer "Table 3-14. Mapping of ECC Bits in Read Data from ECC/Parity Address Map" in TRM for ECC bit mapping. 

    Regards,

    Vivek Singh