3.3 KiB
3.3 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
See .vscode/README.md. Build All = Cmd+Shift+B; flashing tasks call gcc/flash.sh.
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 the board connection
gcc/flash.sh probe
Next Steps
- Connect ST-Link V3 to the evaluation board
- Run VS Code task: "Build + Flash All" (or
gcc/flash.sh all) - The board is hard-reset automatically after flashing
- 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