Jag har haft chansen att vara programutvecklare i flera år och arbetar nu som elektronikingenjör.
Alla system med komplexitet kommer med fel och fel. Både mikrokontroller och IC har sina fördelar och nackdelar baserat på deras användningsområden.
För småskaliga projekt är IC: er snabbare, billigare och mer tillförlitliga än mikrokontroller. För storskaliga projekt med miljontals ingångs-, analys- och jämförelselogik, har mikrokontroller säkert kanten över IC: er.
All programvara misslyckas någon gång, även bugslös kod är benägen att modifieras eftersom den sparas på en ROM, vilket resulterar i logiska fel (t.ex. minnesläckor) som är svåra att upptäcka men någon gång slutar i katastrof.
För kulsäkra programvarubaserade system från fel i kritiska applikationer (såsom militärklass eller livräddningssystem som tågstyrningssystem) implementeras och utvecklas "felsäker" -koncept.
Felsäkra system återgår till ett säkert tillstånd om ett exceptionellt fel inträffar. Vanligtvis kör två processorer samma kod, jämför resultaten för varje instruktion, och om de är lika utförs instruktionen. Annars använder systemet fysiska elektriska reläer för att återgå till ett säkert tillstånd.
Felsäkra programvarubaserade system används i tågförregling och ATP-system (Automatic Train Protection).
Att designa samma komplexa system med Ics är en stor huvudvärk för alla ingenjörer. Och det är därför programvaran designades från dag 1!