3.9 KiB
3.9 KiB
Build Summary - STM32H7S78-DK Dual-Boot Project
Date: October 18, 2026
Status: ✅ SUCCESSFUL
Projects: Boot + Appli (TouchGFX + Audio)
Build Artifacts
Boot Project
Boot/TouchGFX/build/bin/
├── application.map (200 KB) - Linker map file
├── target.elf (500 KB) - Final ELF executable
├── target.hex (69 KB) - Intel HEX for flashing
├── intflash.elf (448 MB) - Internal flash ELF (debug)
└── intflash.hex (69 KB) - Internal flash HEX
Appli Project
Appli/TouchGFX/build/bin/
├── application.map (3.5 MB) - Linker map file
├── target.elf (8.6 MB) - Final ELF executable
├── target.hex (8.3 MB) - Intel HEX for flashing
├── intflash.elf (6.1 MB) - Internal flash ELF (debug)
└── intflash.hex (1.3 MB) - Internal flash HEX
Memory Usage (Appli)
| Region | Used | Total | Usage |
|---|---|---|---|
| RAM | 292,960 B | 384 KB | 74.50% |
| RAM_CMD | 36,672 B | 64 KB | 55.96% |
| DTCM | 8 KB | 12 KB | 66.67% |
| DTCM_RTOS | 50,000 B | 52 KB | 93.90% |
| FLASH | 484,800 B | 2 MB | 23.12% |
| FLASH_GFX | 2,605,504 B | - | TouchGFX assets |
Makefile Fixes
Problem Identified
The original makefiles used objects.tmp file-based linking which caused issues on macOS:
- GNU Make
$(file ...)function unreliable - Temporary file deleted before linking completed
- Directory removal race condition
Solution Applied
Changed to direct object file listing in linker command:
# OLD (problematic)
@$(file >$(build_root_path)/objects.tmp) $(foreach F,$(object_files),$(file >>$(build_root_path)/objects.tmp,$F))
@$(linker) ... @$(build_root_path)/objects.tmp ...
@rm -f $(build_root_path)/objects.tmp
# NEW (working)
@$(linker) ... $(object_files) $(object_asm_files) -o $@ ...
Files Modified
gcc/makefile_boot(lines 225-235)gcc/makefile_appli(lines 420-430)
Flashing
Flash Loader
- Location:
gcc/MX66UW1G45G_STM32H7S78-DK.stldr - Purpose: Program external flash (0x70000000) for Appli
Flashing Order (CRITICAL)
- Boot first (internal flash only)
- Appli second (with external FlashLoader)
- Reset (press NRST button)
VS Code Tasks
| Task | Shortcut | Description |
|---|---|---|
| Build Boot | Ctrl+Shift+B | Build only Boot |
| Build Appli | Ctrl+Shift+B | Build only Appli |
| Build All | Ctrl+Shift+B | Build both projects |
| Flash Boot | Ctrl+Shift+B | Flash Boot to internal flash |
| Flash Appli | Ctrl+Shift+B | Flash Appli with external FlashLoader |
| Build + Flash Boot | Ctrl+Shift+B | Build & flash Boot |
| Build + Flash Appli | Ctrl+Shift+B | Build & flash Appli |
Verification Commands
# Verify build artifacts exist
ls -lh Boot/TouchGFX/build/bin/*.hex Appli/TouchGFX/build/bin/*.hex
# Verify HEX format (should show ASCII text)
file Boot/TouchGFX/build/bin/target.hex
file Appli/TouchGFX/build/bin/target.hex
# Test STM32CubeProgrammer
"/Applications/STMicroelectronics/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.macos64_2.2.500.202603051304/tools/bin/STM32_Programmer_CLI" --version
Next Steps
- Connect ST-Link V3 to the evaluation board
- Run VS Code task: "Build + Flash Boot"
- Run VS Code task: "Build + Flash Appli"
- Press NRST button to start application
- Verify TouchGFX UI and audio processing
Documentation
| File | Purpose |
|---|---|
| README.md | Project overview and debugging |
| .vscode/README.md | VS Code configuration |
| .vscode/flash_guide.md | Complete flashing instructions |
| AGENTS.md | Hardware and architecture details |
Build Status: ✅ SUCCESSFUL
Ready for Flashing: ✅ YES
Last Updated: October 18, 2026