Files
CelloEffects/BUILD_SUMMARY.md
T
2026-10-18 23:39:44 +02:00

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)

  1. Boot first (internal flash only)
  2. Appli second (with external FlashLoader)
  3. 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

  1. Connect ST-Link V3 to the evaluation board
  2. Run VS Code task: "Build + Flash All" (or gcc/flash.sh all)
  3. The board is hard-reset automatically after flashing
  4. 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