touchgfx将图片资源存放外部先遣测试

官方教程

https://support.touchgfx.com/docs/development/ui-development/scenarios/using-non-memory-mapped-flash/
根据官网的教程大概的思路是这样的
但官方给出的是伪代码
touchgfx将图片资源存放外部先遣测试_第1张图片
地址偏移量是为了确定读取图片数据,如果在测试时只用一张图片可以不用计算。
之所以图片不能直接复制到SDRAM是因为touchgfx在缓存位图时有自己的内存分配方式。https://support.touchgfx.com/docs/development/ui-development/touchgfx-engine-features/caching-bitmaps/
同时每张图片也有一部分未知的薄记空间

我们测试一下

按照官方的意思开启图片缓存,测试缓存的是background,效果更加明显

指定缓存地址0xd0200000大小0x100000
touchgfx将图片资源存放外部先遣测试_第2张图片

将LOCATION_ATTRIBUTE里面的ExtFlashSection 改成任何一串字符,怎么舒服怎么来。

touchgfx将图片资源存放外部先遣测试_第3张图片

更改分散加载文件

touchgfx将图片资源存放外部先遣测试_第4张图片
我这里用的是USB OTG HS的空间。
touchgfx将图片资源存放外部先遣测试_第5张图片

自己用cube配置的话在TouchGFXGeneratedHAL类里重写blockCopy。

touchgfx将图片资源存放外部先遣测试_第6张图片
0x2131在keil默认是数字所以需要加(void *)

将background的数据复制touchgfx将图片资源存放外部先遣测试_第7张图片

注意 一定要加keep否则会报错。

错误展示,将重写的blockcopy里的东西注释掉

touchgfx将图片资源存放外部先遣测试_第8张图片
touchgfx将图片资源存放外部先遣测试_第9张图片
测试时请拔掉电源静置几秒重新上电,SDRAM只要有电源就会不断刷新,数据并不会丢失。

正确展示

touchgfx将图片资源存放外部先遣测试_第10张图片

debug 瞅瞅

touchgfx将图片资源存放外部先遣测试_第11张图片
如箭头所指的地方dest目标地址并不是我们之前定的0xd0200000而是0xD0200060多出来了0x60,不知道这个是什么的,但是知道和图片大小成正比。
剩下需要做的就是从SD卡 或nandflash或者其他储存媒介复制图片数据(bin文件)。硬件条件缺乏(迟迟不开学。。。。。。),无法进行SD卡测试。

你可能感兴趣的:(touchgfx)