Tänk på exemplet på en elektronisk styrenhet (ECU) som använder traditionell statisk inbäddad programvara. Bootloader är en mjukvarukomponent som används både för att initiera uppstarten av ECU-huvudprogramvaran, inklusive kopiering av programvaran till RAM, och för att utföra eventuella kontroller av programvaran före uppstart. Bootloader ansvarar också för programuppdatering, mottagning, kontroll och skrivning av den uppdaterade programvaran i minnet, vanligtvis Flash-minne. Därför används termen Flash Bootloader också ofta.
Används samma bootloader i utveckling och produktion?
Vanligtvis kan samma startladdare användas vid utveckling av fordon och tillhörande ECU och vid normal produktion, med skydd för att säkerställa att produktions-ECU har många utvecklingskapaciteter eller tekniska startlastare inaktiverade. Under fordonsutveckling är det ofta önskvärt att ta bort säkerhetsmekanismer för produktionsbootloader för att möjliggöra snabb distribution av utvecklingsprogramvara.
Säker startladdare
I allt högre grad måste alla bootloader vara säkra. Men traditionellt har detta varit en distinktion, vanligtvis implementerad för att skydda funktionalitet som rör säkerhet, säkerhet och ibland prestanda.
Bootloader kontrollerar vanligtvis programminnet för ECU vid uppstart och mottagna programvara före en programuppdatering och i minnet efter.
Mekanismer inkluderar vanligtvis:
- Autentisering av programvaran som mottas och/eller finns i minnet vid starttiden, ofta med hjälp av en hash av programvarubinären för att kontrollera korrektheten som genereras från en säker kompileringsprocess av officiellt släppta programvaruversioner.
- Autentisering av avsändaren med hjälp av en frö och nyckel, skydd av säkra data inom ECU med hjälp av säkert minne och minneskartor för att definiera tillgängliga/omskrivbara områden.
Dubbel startladdare
Vissa implementeringar av bootloader är i två delar, därav termen dual bootloader. I det här fallet kan den primära startladdaren inte uppdateras, som en del av att säkra bootloader. Detta handlar om uppstart av modulen och uppdatering av den sekundära bootloader. Den sekundära startladdaren kan uppdateras via en säker process, vilket möjliggör modifieringar av programvaruuppdateringsprocessen, till exempel minneskarta, så att dessa normalt kan låsas. Denna typ av bootloader är mindre vanligt nu på grund av nya metoder för att säkra uppdateringsprocessen med inbyggd säker hårdvara, till exempel HSM (Hardware Secure Module).
Observera att denna term är som dubbel start, där tvåstartsblock eller fulla minnen är tillgängliga, vilket gör att en uppdatering kan äga rum på den oanvända versionen medan en version är aktiv. Detta kräver extra minne i varje ECU som stöder denna uppdateringsmetod.
Capital Embedded Bootloader
Capital Embedded Bootloader stöder tillförlitliga ECU-uppdateringar under utveckling, i fordonsproduktion och under fordonets livslängd, via anslutna diagnostikverktyg eller trådlösa metoder. Det standardiserade ISO 14229 UDS-protokollet används över en rad vanliga fordonsnätverksbussar, Ethernet, CAN/CAN-FD, LIN, FlexRay, och det är också möjligt att använda andra metoder som ASAM kalibreringsprotokoll. Cybersäkerhet är en viktig aspekt av mjukvaruuppdateringsflödet och funktioner som möjliggör programvaruautentisering, och säkra startalternativ är en del av lösningen. För att tillfredsställa OEM (originalutrustningstillverkare) och MCU-specifika krav finns brett stöd tillgängligt för ett brett spektrum av ECU-projekt.
Vad är skillnaden mellan OTA och FOTA?
OTA (over the air) uppdatering, eller FOTA (firmware over the air), är en metod för att uppnå mottagning av ny programvara för en inbyggd enhet, till exempel bil-ECU, på ett fjärrsätt, inte via direkt anslutet serviceverktyg i en verkstad. Detta kan kräva viss diagnostisk testkapacitet ombord i en samordnande ECU och/eller återställnings- och självtestförmåga i själva bootloadern.