14.5. Sammanfattning¶
Du har gått igenom livscykeln för en kamera som går från fungerande bänkskript till levererad produkt:
Anpassade firmware-builds – utvecklingsmiljön, att bygga firmware-avbildningen från källkod, flasha den på en kamera, och felsökningsvägen från VS Code Cortex-Debug till kommandoraden
gdbrunnernär något är fel på firmware-sidan.Leverera applikationen – att baka in applikationskoden i firmwaren via frusna moduler, baka in resurser i en ROMFS-avbildning, och uppslagsordningen som avgör vilken kopia av en fil körtiden faktiskt laddar vid uppstart. Uppdelningen som faller ut:
boot.pyför miljökonfiguration före REPL,main.pysom applikationens startpunkt, frystmain.pyför startpunkten och ROMFS för allt annat.Härdning för produktion – biblioteket
loggingskrivet till en känd sökväg, enmachine.WDTsom matas en gång per iteration av huvudloopen, entry/exceptpå toppnivå som förvandlar krascher till loggade händelser istället för omstarter, filsystemshygien som håller filoperationer snabba allt eftersom applikationen samlar på sig poster under månader i fält, och – när produkten kräver det – skydd mot avläsning av flashminnet.Avancerat material – TLS-certifikat för kameror som behöver autentisera sig mot och kryptera trafik med nätverkstjänster.
En levererad kamera har allt detta på plats: dess applikationskod körs från firmware-avbildningen, dess vakthund matas en gång per iteration av huvudloopen, dess logg hamnar i en daterad katalog på SD-kortet, och – när produkten kräver det – har dess flashminne låsts mot avläsning.
14.5.1. Vart du går härifrån¶
Produktion är tutorialens sista kapitel. Härifrån delar dokumentationen upp sig i referensmaterial:
Biblioteksreferensen är den alfabetiska ”vad är det exakta namnet på detta anrop”-vyn över varje modul som kameran exponerar –
machine,logging,os,csi,image,ml, och resten.Snabbreferenssidorna per kort täcker detaljerna för varje kamera i OpenMV-produktlinjen – stiftutläggningar, montbara bussar, kort-ID:n, tillgänglig kringutrustning, och de små skillnader som spelar roll när applikationen måste landa på en specifik komponent.
Sensorreferenssidorna och shield-referenssidorna täcker de enskilda bildsensorerna och tilläggssköldarna som en kamera kan bära – specifikationerna per komponent, stiftutläggningar och anteckningar som applikationen behöver när den väljer sensorer och sköldar för en build.
Språkreferensen för MicroPython täcker själva språket – syntaxskillnader från CPython, implementeringsdetaljerna som spelar roll när ett skript spänner över de två, och referensen för den inbyggda assemblern för det sällsynta fall då Python är för långsamt.
Tutorialen är vägen från ”jag har en ny kamera i handen” till ”jag har levererat en produkt.” Härifrån är kameran en del av ett större system som applikationen ansvarar för, och arbetet är applikationens eget.