Could you explain how it's work EIM Module?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Could you explain how it's work EIM Module?

1,408 Views
catalin_stiuca
Contributor I

Hello,

It's necessary to implement memory protection in our project and I started from example ( eim_injection_s32k116 ). Honestly, I'm a little bite confuse. I didn't understand how it's work EIM Module and what represent this structure:

typedef struct
{
uint8_t channel;                 /*!< EIM channel number */
uint8_t checkBitMask;       /*!< Specifies whether the corresponding bit of the check-bit bus
                                                   from the target RAM should be inverted or remain unmodified */
uint32_t dataMask;            /*!< Specifies whether the corresponding bit of the read data bus
                                                  from the target RAM should be inverted or remain unmodified */
bool enable;                       /*!< true : EIM channel operation is enabled
                                                  false : EIM channel operation is disabled */
} eim_user_channel_config_t;

In project is used one address ( /* Initialize address used to test */ ). How impact this address EIM and ERM module? I know that ERM_DRV_GetErrorDetail() return this address like error but how and why?

Also, ERM Module on S32K116 is just for SRAM_U Memory. How I can detect error on ROM and NVM ?

Thank you in advance,

Catalin Stiuca

Tags (2)
0 Kudos
Reply
1 Reply

1,342 Views
davidtosenovjan
NXP TechSupport
NXP TechSupport

Hi, ERM modules invert certain line on the data bus, causing erratic read of certain address. It is needed to choose the channel fitting to address range of target memory where an ECC error is injected. EIM only use RAM arrays (on some other devices it can be local RAM arrays as FEC or DMA).

pastedImage_4.png

pastedImage_3.png

According S32K safety manual, flash ECC error are detected by flash controller:

pastedImage_5.png

Hope it helps a bit

0 Kudos
Reply