14.1.1.3.5.2. OpenMV AE3: dfu-util

OpenMV AE3는 openmv_dfu 부트로더(애플리케이션 VID:PID 37C5:16E3, DFU VID:PID 37C5:96E3)를 사용하지만, 듀얼 코어 장치입니다: 고성능(HP) 코어와 고효율(HE) Cortex-M55 코어를 갖춘 Alif Ensemble입니다. 부트로더에 진입하려면 카메라를 연결하기만 하면 됩니다: 전원이 켜질 때 잠시 대기하며, -wdfu-util 이 장치가 나타날 때까지 기다리게 합니다. 각 코어는 자체 펌웨어 이미지를 실행하고 자체 읽기 전용 ROMFS를 가지므로, 전체 플래시는 네 개의 이미지로 구성됩니다:

코어

펌웨어 명령

ROMFS 명령

M55-HP

-a 1 -D firmware_M55_HP.bin

-a 6 -D romfs0.img

M55-HE

-a 2 -D firmware_M55_HE.bin

-a 3 -D romfs1.img

전체 플래시는 네 개의 이미지를 기록하며, --reset 은 마지막 전송에서만 사용합니다:

dfu-util -w -d ,37C5:96E3 -a 1 -D firmware_M55_HP.bin
dfu-util -w -d ,37C5:96E3 -a 2 -D firmware_M55_HE.bin
dfu-util -w -d ,37C5:96E3 -a 3 -D romfs1.img
dfu-util -w -d ,37C5:96E3 -a 6 --reset -D romfs0.img

한 코어의 펌웨어만 교체하려면 해당 코어의 alt만 플래싱합니다(HP는 -a 1, HE는 -a 2). 한 코어의 ROMFS를 교체하려면 해당 코어의 ROMFS alt를 플래싱합니다(HP / romfs0-a 6, HE / romfs1-a 3).

14.1.1.3.5.2.1. Everspin MRAM 초기화

OpenMV AE3의 특수 빌드는 내부 FAT 파일시스템과 HP 코어의 ROMFS를 담는 표준 외부 플래시를 Everspin MRAM 칩으로 교체합니다. 이 섹션은 그러한 빌드에만 적용됩니다. 한 번도 초기화되지 않았거나 구성 레지스터가 손상된 Everspin 부품은 쓰기에 응답하지 않으므로, 칩이 다시 초기화될 때까지 해당 alt로의 DFU 전송이 실패합니다.

부트로더는 이를 또 하나의 DFU alt로 노출합니다: 키 파일을 -a 7 로 다운로드하면 초기화 시퀀스(JESD 재설정, 구성 레지스터 초기화, 잠금 해제, 두 번의 전체 칩 소거 과정)가 트리거됩니다. 다운로드 자체는 아무것도 저장하지 않습니다 – 파티션은 파일이 예상되는 16바이트 키로 시작하는지 확인하고 부트로더 세션당 최대 한 번 시퀀스를 실행합니다.

펌웨어 저장소의 tools/flash_recovery_key.py 로 키 파일을 생성한 다음(4 KB의 key.bin 을 기록함), 다운로드합니다:

python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin

그 후 칩은 비어 있게 됩니다: HP 코어의 ROMFS를 다시 플래싱하고(-a 6 -D romfs0.img), 내부 FAT 파일시스템은 다음 부팅 시 스스로 다시 포맷됩니다.

더 보기

잘못된 main.py 나 손상된 파일시스템 때문에 카메라가 부팅되지 않을 때의 해결책인 카메라의 내부 FAT 파일시스템 지우기는 내부 파일 시스템 지우기 을 참조하세요.

카메라의 부트로더 자체를 복원하려면 부트로더 복구 를 참조하세요.