Files
CelloEffects/BUILD_SUMMARY.md
T

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