1 下载到开发板
touchgfx具有下载到开发板的功能,但是刚上手却发现不大行,始终没有办法。
仔细调试一下,发现两个问题,首先,开发的供电跳线需要调整到stlink的位置,其次,touchgfx没有外部工具的设定位置,这个setting实在是简单。
所以cubeprogrammer需安装在指定位置,所以先卸载后重新安装。

那么显示是安装下载成功了。
2 那么看一下开发板的效果,

运行成功,这个是一个按键交互的工程。按键user可以控制这个标签的旋转角度。
3 分析
这个是下载的过程分析一下,
Program and Run Target
Generate
Done
Generate Assets
make -f simulator/gcc/Makefile assets -j8
Reading ./application.config
Reading ./target.config
Done
Post Generate
touchgfx update_project --project-file=simulator/msvs/Application.vcxproj
Done
Post Generate Target
touchgfx update_project
.cproject file: ../STM32CubeIDE/.cproject
Writing STM32CubeIDE project file: ../STM32CubeIDE/.project
Writing STM32CubeIDE project file: ../STM32CubeIDE/.cproject
Done
Compile
make -f ../gcc/Makefile -j8
Reading TouchGFX/application.config
Reading TouchGFX/target.config
Linking TouchGFX/build/bin/target.elf
Memory region Used Size Region Size %age Used
DTCMRAM: 0 B 128 KB 0.00%
ITCMRAM: 0 B 64 KB 0.00%
RAM_D1: 41240 B 320 KB 12.59%
RAM_D2: 0 B 32 KB 0.00%
RAM_D3: 0 B 16 KB 0.00%
FLASH: 199868 B 1 MB 19.06%
OSPI: 457216 B 64 MB 0.68%
Producing additional output formats...
target.hex - Combined internal+external hex
intflash.elf - Internal flash, elf debug
intflash.hex - Internal flash, hex
Done
Flash
make -f ../gcc/Makefile flash
Reading TouchGFX/application.config
Reading TouchGFX/target.config
Linking TouchGFX/build/bin/target.elf
Memory region Used Size Region Size %age Used
DTCMRAM: 0 B 128 KB 0.00%
ITCMRAM: 0 B 64 KB 0.00%
RAM_D1: 41240 B 320 KB 12.59%
RAM_D2: 0 B 32 KB 0.00%
RAM_D3: 0 B 16 KB 0.00%
FLASH: 199868 B 1 MB 19.06%
OSPI: 457216 B 64 MB 0.68%
Producing additional output formats...
target.hex - Combined internal+external hex
intflash.elf - Internal flash, elf debug
intflash.hex - Internal flash, hex
-------------------------------------------------------------------
STM32CubeProgrammer v2.20.0
-------------------------------------------------------------------
ST-LINK SN : 001A002C3438510C34313939
ST-LINK FW : V3J16M9
Board : STM32H735G-DK
Voltage : 3.26V
SWD freq : 8000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x483
Revision ID : Rev Z
Device name : STM32H72x/STM32H73x
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M7
BL Version : 0x92
Opening and parsing file: target.hex
Memory Programming ...
File : target.hex
Size : 641.63 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sector 0
Erasing memory corresponding to segment 1:
Erasing internal memory sectors [0 1]
Erasing memory corresponding to segment 2:
Erasing external memory sectors [0 6]
Download in Progress:
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0%
ÛÛÛÛÛÛÛÛÛ 19%ÛÛÛÛÛÛÛÛÛÛ 38%ÛÛÛÛ 47%ÛÛÛÛÛÛÛÛÛ 64%ÛÛÛÛÛÛÛÛ 80%ÛÛÛÛÛÛÛÛ 97%ÛÛ 100%
File download complete
Time elapsed during download operation: 00:00:07.657
Hard reset is performed
Done
Done
主要步骤说明如下:
- 生成阶段(Generate) :完成基础生成操作
- 生成资源(Generate Assets) :通过 Makefile 编译资源,读取配置文件后完成
- 生成后处理(Post Generate) :更新 Visual Studio 仿真器项目文件
- 目标生成后处理(Post Generate Target) :更新 STM32CubeIDE 的项目文件(.project 和.cproject)
- 编译(Compile) :
- 编译生成目标文件(target.elf)
- 显示内存使用情况(各区域 RAM/FLASH/OSPI 的占用率,如 FLASH 使用 19.06%,OSPI 使用 0.68%)
- 生成多种输出格式(hex 文件、调试用 elf 等)
- 烧录(Flash) :
- 再次确认内存使用情况
- 通过 STM32CubeProgrammer 连接硬件(STM32H735G-DK 开发板)
- 擦除对应内存区域,下载 target.hex 文件(大小 641.63KB)到 0x08000000 地址
- 烧录完成(耗时 7.657 秒),执行硬件复位
最终整个流程成功完成(Done),程序已成功烧录到目标设备。
这个代码是下载到了MCU的Flash内存,如果需要到外存,需要调用对应硬件接口并在运行时调用。
这里 |