TouchGFX(三)_STM32CubeIDE生成extflash.bin

码字不容易,转载请注明出处!

上一篇文章是直接把本应该放在外部FLASH的数据直接烧录到SDRAM中,这样的做法非常适合调试,但是断电重启后数据就会丢失。接下来这篇文章将介绍如何解决这个问题,前提的条件是板子必须先实现读写TF卡的功能,并且需要FATFS文件系统。

打开Debug路径下的.map文件,找到ExtFlashSection,可以看到起始地址就是0xC0000000,后面的一连串数据就是图片资源数据和字体数字,查看一下即可
TouchGFX(三)_STM32CubeIDE生成extflash.bin_第1张图片
打开ld文件,查看这两个section的名称,然后打开工程设置
TouchGFX(三)_STM32CubeIDE生成extflash.bin_第2张图片
TouchGFX(三)_STM32CubeIDE生成extflash.bin_第3张图片
打开Build Steps选项,输入以下指令后,点击应用和关闭

arm-none-eabi-objcopy.exe -O binary -j ExtFlashSection -j football_video_section "${BuildArtifactFileBaseName}.elf" "externalflash.bin"

TouchGFX(三)_STM32CubeIDE生成extflash.bin_第4张图片
点击编译,编译完成会有如下信息
TouchGFX(三)_STM32CubeIDE生成extflash.bin_第5张图片
打开Debug路径,发现生成了一个bin文件,这个文件包含了图片资源和字体资源
TouchGFX(三)_STM32CubeIDE生成extflash.bin_第6张图片
添加上电时从TF卡复制bin文件数据到SDRAM的代码(下面只是简单的范例代码),最好把函数放在画面显示前调用,编译,把externalflash.bin文件拷贝到TF卡,插到板子上,点击小虫子仿真烧入程序
TouchGFX(三)_STM32CubeIDE生成extflash.bin_第7张图片
经过以上的操作,断电重启屏幕显示也保持正常,如果发现显示有乱块,说明复制到SDRAM的函数出问题,数据不完整。在从TF卡复制数据到SDRAM时会有一小段花屏的时间,可自行做些处理,显示预热中的提示信息之类的,这样的处理就更加完善。本篇文章到此结束,点击关注和在看,可以第一时间收到新文章推送哦!

码字不容易,转载请注明出处!

你可能感兴趣的:(TouchGFX(三)_STM32CubeIDE生成extflash.bin)