How to perform thorough FMEA on low-level software for a typical Automotive ADAS Controller?
For example, one Failure mode may be Loss of I2C communication or intermittent I2C communication. How to come up with all possible potential effects of this failure? How to come up with all possible Potential Causes of Failure?
How to identify all possible Failure Modes?
for I2c for example, you could have two registers filled with dummy values and then let your Micro query those registers on a regular basis to make sure the transmitted values match the values expected in the two registers. Also, at start up, all registers should be checked to make sure they are the expected value and change one value to check if the system algorithm makes appropriate adjustments.
During startup, you could feed the ADAS a Fake lidar reading that an object is approaching the vehicle and check if the brake pressure increases to prepare for impact.
I've sat in a lot of scenario development for FMEA in chemical processing environments and developed a series of remedy actions incase a reaction starts to get out of control with a process like (cool, if that doesn't work, vent pressure, if that doesn't work, dilute with solvent, if that doesn't work,..., several more ideas,.... if all those ideas don't work, turn off the control room ventilation system and move behind the 6' thick concrete wall until the all-clear siren sounds).
the FMEA would be an action and a verifiable proof of action to execute each item on the list. Add a small amount of CO, make sure the CO sensor shows a noticeable response. Add a fake high CO sensor signal to the logic board, make sure it increases nitrogen purge and valves open And so on.