HardFault
Cortex-M:s samlingsundantag för allvarliga fel — firmwarevärldens motsvarighet till segmenteringsfel, fast utan operativsystem som skriver ut något.
Undantag nummer 3 i vektortabellen. På Cortex-M0 är det det enda felundantaget; på M3 och uppåt finns finare varianter — MemManage, BusFault, UsageFault — som eskalerar till HardFault om de inte är påslagna, vilket de inte är som standard. Vanliga orsaker är stacköverflöd, ojusterad åtkomst, skrivning till flash, ett funktionsanrop genom en trasig pekare eller en glömd semihostingbrytpunkt.
En pikant detalj: en läsning via nollpekare kraschar sällan, eftersom adress 0 är flash och där ligger vektortabellen. Standardhanteraren är en oändlig loop. Den som skriver en riktig läser i stället ut statusregistren CFSR och HFSR och hämtar programräknaren från den stack som hårdvaran sparade — där står exakt vilken instruktion som föll.