Hello All,
This is what I had to do to get the ‘SL_SelfTest_Flash’ to report a passed
Insert a wrapper exception handler around the IRQ / FIQ and intercept the ESM high and low priority interrupt handlers, and in the wrapper:
if test == FLASH_ADDRESS_PARITY_FAULT_INJECT then
Set ESM SR2 = 0x00000010
Set VIM IRQ INTREQ0 = 0x00000001
Restore previous FLASH FPAROVR
Before each call to ‘SL_SelfTest_Flash’:
Save FLASH FPAROVR
Save FLASH FDIAGCTRL
After each call to ‘SL_SelfTest_Flash’:
Set FLASH FEDACSTATUS = 0xFFFFFFFF
Restore FLASH FDIAGCTRL
Read to unlock FLASH FUNCERRADD
Clear ESM SR2 0x00000010
Clear ESM SR3 0x00000080
Clear and ERROR pin and reset the key to normal
Not all steps are required for each test, but all are required to get all tests to pass.
This was all done via code inspection and debugging, where is the specification for all of this?
Why do I need to put an extra layer of interrupt handling in just to get the tests to pass when interrupts are enabled?
Regards,
Mark.