Hi experts,
Our implementation of the diagnostic FLA11 behave as expected.
When triggering single bit error we get the expected ESM 1.4. Additionaly we get a ESM 2.3 which should not be triggered.
When implementing the diagnostic we used the SafeTi Library as a reference. Additionally we load the function into RAM as suggested by the Technical Reference Manual.
We do the following:
volatile uint32_t Val; volatile uint32_t* Ptr = (uint32_t*)(FLASH->DIAGCTRL); *Ptr = 0x50007U; Ptr = (uint32_t*)(FLASH->FEMUDMSW); *Ptr = 0x0U; Ptr = (uint32_t*)(FLASH->FEMUDLSW); *Ptr = 0x0U; Ptr = (uint32_t*)(FLASH->FEMUECC); *Ptr = 0xCEU; Ptr = (uint32_t*)(FLASH->DIAGCTRL); *Ptr |= (0 << 8U); // default value is 0 anyway *Ptr |= (0x1U << 24U); /*Trigger error with flash read*/ Ptr = (uint32_t*)(0x00000008U); Val = (uint32_t)*Ptr;
Is a ESM 2.3 expected or is there something we are missing?
Thank you and best regards,
Max