Implementation of a secure boot mechanism for STM32F407VET6 that verifies firmware integrity using SHA-256 hashes.
- Minimal bootloader with application jump
- SHA-256 firmware verification
- Tamper detection
- UART/LED status indicators
- Hardware:
- STM32F407VET6 board
- ST-Link V2 programmer
 
- Software:
- STM32CubeIDE or arm-none-eabi-gcctoolchain
- OpenSSL (for hash generation)
- Python (optional for scripts)
 
- STM32CubeIDE or 
| Address Range | Content | 
|---|---|
| 0x08000000-0x0800FFFF | Bootloader | 
| 0x08010000-... | Application Firmware | 
| Last 32 bytes | Stored SHA-256 | 
- Generate firmware hash:
openssl dgst -sha256 -binary firmware.bin | dd of=firmware_with_hash.bin bs=1 seek=$(stat -c%s firmware.bin) conv=notrunc