14.1.1.5. Przywracanie bootloadera¶
Zwykłe wgrywanie oprogramowania układowego nigdy nie narusza bootloadera, więc przerwana aktualizacja oprogramowania układowego jest niemal zawsze możliwa do naprawienia: uruchom ponownie to samo polecenie wgrywania z Wgrywanie oprogramowania układowego (dfu-util -w czeka na urządzenie) lub ponownie wykonaj Load Custom Firmware, gdy kamera nadal znajduje się w swoim bootloaderze. Ta strona obejmuje rzadszy przypadek, w którym sam bootloader jest uszkodzony, a kamera po resecie nie jest już wykrywana jako urządzenie DFU.
Bootloader znajduje się w osobnym regionie pamięci flash, oddzielonym od oprogramowania układowego i systemu plików, a każda kamera marki OpenMV ma sprzętową ścieżkę powrotu, dzięki czemu trudno jest doprowadzić kamerę do stanu trwałej nieodwracalności. Jedynym wyjątkiem są płytki Arduino – ich bootloadery są stałe i nie mogą być przywracane przez użytkownika.
OpenMV IDE automatyzuje wszystkie te procedury odzyskiwania, prowadząc Cię po drodze przez kroki sprzętowe (zworki, przełączniki, przyciski). Poniższe sekcje dokumentują, co robi ono dla każdej rodziny kamer, na wypadek gdybyś chciał przeprowadzić odzyskiwanie samodzielnie.
14.1.1.5.1. Kamery STM32 (zworka BOOT–RST)¶
Dla kamer OpenMV opartych na STM32 (M4, M7, H7, H7 Plus, Pure Thermal):
Odłącz kamerę.
Połącz zworką piny BOOT i RST.
Podłącz ponownie. Kamera jest teraz wykrywana jako systemowe urządzenie DFU firmy ST (
0483:df11), niezależnie od uszkodzonego oprogramowania układowego.Wgraj ponownie tylko bootloader – użyj Load Custom Firmware w OpenMV IDE z plikiem
bootloader.binlub:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binUsuń zworkę i podłącz ponownie.
Wgraj oprogramowanie układowe w zwykły sposób (zobacz Wgrywanie oprogramowania układowego).
14.1.1.5.2. OpenMV Cam N6 (zworka BOOT–VCC)¶
Odłącz kamerę.
Połącz zworką piny BOOT i VCC.
Podłącz ponownie. Kamera jest teraz wykrywana jako systemowe urządzenie DFU firmy ST (
0483:df11), niezależnie od uszkodzonego bootloadera.Wgraj ponownie za pomocą STM32CubeProgrammer (dołączonego do OpenMV SDK), używając deskryptora układu pamięci flash dostarczanego wraz z
bootloader.bin– przepisuje on bootloader pierwszego stopnia, loader pamięci flash zewnętrznej oraz bootloader:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvUsuń zworkę i podłącz ponownie.
Wgraj oprogramowanie układowe w zwykły sposób (zobacz Wgrywanie oprogramowania układowego).
14.1.1.5.3. OpenMV Cam RT1062¶
Odtworzenie bezpiecznego bootloadera RT1062 wymaga przejścia chipa w tryb pobierania szeregowego z pamięci ROM (SDP) za pomocą zworki, przygotowania flashloadera w pamięci RAM, a następnie przepisania bloku konfiguracji pamięci flash, SBL oraz oprogramowania układowego. Sekwencja ręczna:
Odłącz kamerę, połącz zworką piny SBL i 3.3V, a następnie podłącz ponownie. Chip jest wykrywany w trybie SDP ROM (
0x1FC9:0x0135).Przygotuj i uruchom flashloader w pamięci RAM:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
Kamera odpowiada teraz jako flashloader (
0x15A2:0x0073). Skonfiguruj pamięć flash zewnętrzną, zapisz blok konfiguracji pamięci flash, a następnie zapisz SBL:blhost -u 0x15A2,0x0073 -- fill-memory 0x2000 4 0xC0000008 word blhost -u 0x15A2,0x0073 -- configure-memory 9 0x2000 blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60000000 0x1000 blhost -u 0x15A2,0x0073 -- fill-memory 0x2000 4 0xF000000F word blhost -u 0x15A2,0x0073 -- configure-memory 9 0x2000 blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60001000 <sbl_size> blhost -u 0x15A2,0x0073 -- write-memory 0x60001000 blhost_flash_loader.bin
Zapisz oprogramowanie układowe i ustaw bezpiecznik źródła rozruchu, aby chip uruchamiał nowy SBL z pamięci flash zewnętrznej:
blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60040000 <firmware_size> blhost -u 0x15A2,0x0073 -- write-memory 0x60040000 firmware.bin blhost -u 0x15A2,0x0073 -- efuse-program-once 0x06 00000010 blhost -u 0x15A2,0x0073 -- reset
Usuń zworkę i wykonaj cykl zasilania kamery.
Ostrzeżenie
efuse-program-once 0x06 00000010 to jednorazowy, nieodwracalny zapis bezpiecznika, który ustawia urządzenie tak, aby uruchamiało się z pamięci flash zewnętrznej. To kolejny powód, aby pozwolić OpenMV IDE przeprowadzić odzyskiwanie bootloadera RT1062 zamiast wykonywać tę sekwencję ręcznie.
14.1.1.5.4. OpenMV AE3¶
Bezpieczny bootloader AE3 nie jest przywracany przez USB DFU. Jest on przepisywany do pamięci MRAM chipa za pomocą narzędzi SE Tools firmy Alif Semiconductor (dołączonych do OpenMV IDE) przez szeregowe połączenie ISP. Jest to interaktywna procedura przeznaczona wyłącznie do odzyskiwania – nie jest to rutynowa metoda wgrywania – i jest podatna na błędy przy wykonywaniu ręcznym; ze wszystkiego na tej stronie to właśnie ją najlepiej pozostawić OpenMV IDE.
Połączenie. Narzędzia SE Tools komunikują się z AE3 przez port szeregowy ISP jego adaptera debugowania – interfejs FTDI 0403:6015 lub CH340 1A86:55D3, wraz z J-Link. Odzyskiwanie wymaga przełączenia urządzenia w tryb odzyskiwania: włącz wbudowany przełącznik odzyskiwania.
SE Tools. OpenMV IDE dołącza te pliki wykonywalne firmy Alif. Współdzielą one dwa pliki konfiguracyjne – isp_config_data.cfg oraz global-cfg.db – tworzone przez maintenance przy pierwszym połączeniu:
Narzędzie |
Przeznaczenie |
|---|---|
|
Odpytuje Secure Enclave ( |
|
Aktualizuje pakiet systemowy Secure Enclave, gdy jest on starszy niż wersja wymagana przez oprogramowanie układowe. |
|
Generuje obraz spisu treści (TOC) (używany przy zapisie wyłącznie aplikacji). |
|
Zapisuje obraz(y) do MRAM – krok, który przywraca bootloader. |
Procedura:
Połącz się z AE3 za pomocą
maintenance; narzędzie poprosi o port szeregowy oraz typ urządzenia, tworząc plikiisp_config_data.cfgiglobal-cfg.dbdla pozostałych narzędzi.Jeśli pakiet systemowy Secure Enclave jest nieaktualny,
updateSystemPackagego zaktualizuje; wykonaj cykl zasilania, gdy pojawi się odpowiedni komunikat.app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"zapisuje bootloader oraz TOC do pamięci MRAM.AE3 zostaje ponownie wykryty jako urządzenie DFU
37C5:96E3. Uruchom zwykłe wgrywanie czterech obrazów z OpenMV AE3: dfu-util, aby załadować aplikację.Wykonaj cykl zasilania kamery i wyłącz przełącznik odzyskiwania.
Informacja
OpenMV IDE obsługuje znacznie więcej niż tę bezproblemową ścieżkę – uszkodzone oprogramowanie układowe Secure Enclave, wadliwy bootloader oraz inne stany awaryjne wymagają każdorazowo własnych kroków odzyskiwania, a po drodze wiele może pójść nie tak. Jeśli powyższe kroki ręczne nie przywrócą kamery do działania, użyj OpenMV IDE, aby ją odzyskać.