我尝试为自己设计的
STM32F750板制作一个TouchFGX演示。
电路板硬件已经过验证,它适用于我的“手工制作”简单测试图像图形。该板没有任何类型的触摸输入,但有一些硬件按钮。
而且内存布局有点特殊。
STM32F750的内部FLASH和SRAM扩展了32MB SDRAM和32MB SPI flash。在内部 STM32 FLASH 中,存在一个引导加载程序,它将 QSPI 作为 USB 存储器提供给 USB 连接的 PC,并且也可以将其用作只读 FATFS。
启动时,引导加载程序在 FATFS 中查找应用程序文件,对其进行验证并将其复制到内部 SRAM 中以供执行。SDRAM 用于帧缓冲区、常量、变量和堆。应用程序可以使用 QSPI FLASH 来加载资产。
这种机制允许非常简单的固件更新,只需将固件应用程序拖放到 PC 的文件资源管理器中即可。该机制经过充分验证,可与其他固件应用程序良好运行。中的逐步说明,使用 STM32CubeMX 和 TouchGFX Designer 为 STM32CubeIDE 设置了一个 TouchGFX 项目
-开发介绍)。
此应用程序使用 FreeRTOS,并且所有工具和包都更新到最新的可用版本。
但是 TouchGFX 应用程序在启动时立即失败,并在 MX_TouchGFX_Init() 函数中出现硬故障。调试器在这里没有多大帮助,因为故障发生在 TouchGFX 库的预编译部分:

非常欢迎在何处寻找解决方案的任何提示或想法。
编辑:附加信息:
引导加载程序将整个应用程序及其所有部分从 QSPI 闪存复制到 SDRAM。为了克服一些内存带宽限制,应用程序的启动代码将大部分扇区复制到内部 SRAM。复制的扇区是:
文本
arm_extab
_exidx
_preinit_array
_init_array
_fini_array
链接器文件的制作使得不同的加载和执行地址得到正确处理。
也许我确实错过了这里的一个部分?