122 lines
3.9 KiB
Markdown
122 lines
3.9 KiB
Markdown
# 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:
|
|
```makefile
|
|
# 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)
|
|
1. **Boot first** (internal flash only)
|
|
2. **Appli second** (with external FlashLoader)
|
|
3. **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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. **Connect ST-Link V3** to the evaluation board
|
|
2. **Run VS Code task**: "Build + Flash Boot"
|
|
3. **Run VS Code task**: "Build + Flash Appli"
|
|
4. **Press NRST** button to start application
|
|
5. **Verify** TouchGFX UI and audio processing
|
|
|
|
## Documentation
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| [README.md](README.md) | Project overview and debugging |
|
|
| [.vscode/README.md](.vscode/README.md) | VS Code configuration |
|
|
| [.vscode/flash_guide.md](.vscode/flash_guide.md) | Complete flashing instructions |
|
|
| [AGENTS.md](AGENTS.md) | Hardware and architecture details |
|
|
|
|
---
|
|
|
|
**Build Status**: ✅ SUCCESSFUL
|
|
**Ready for Flashing**: ✅ YES
|
|
**Last Updated**: October 18, 2026
|