野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18197|回复: 3

[emWin] 分享一个批量从外部存储器加载图片到SDRAM的emWin例程

[复制链接]

发表于 2020-11-3 23:01:54 | 显示全部楼层 |阅读模式
本帖最后由 ZZZ_XXJ 于 2020-11-11 15:10 编辑

这个例程使用SD卡存放图片,在显示图片之前提前从SD卡加载图片到SDRAM,之后显示的时候可以节省时间,支持BMP、JPEG、PNG、GIF和dta流位图

例程里面的图片资源全部来自野火的emWin例程基于野火的H743Pro板,使用了FATFS,其他使用SDRAM的芯片平台比如F429\F767等,如果也是用的FATFS,可以直接无脑移植


不是FATFS甚至不用文件系统也没事,移植量很小,只需要把MainTask.c里面FATFS相关的读写函数替换掉即可,SPI FLASH+无文件系统这样的也可以用,方法也是一样,把FATFS读写函数用FLASH读写函数替换掉


F407或者F103等使用SRAM的平台,如果SRAM空间足够大,那么也可以试一试


从外部存储器批量加载图片-基于H743.zip (5.57 MB, 下载次数: 50)

补充下例程的资源占用情况
一共使用了5张不同格式的图片,下面是具体信息:
格式 文件大小 分辨率
dta流位图 253KB 480*270
BMP 972KB 768*432
JPEG199KB 800*480
PNG60.3KB 260*261
GIF 139KB 232*221

资源全部加载完成后的内存占用情况
野火论坛202011111510339700..png



回复

使用道具 举报

发表于 2020-11-4 08:43:22 | 显示全部楼层
666666666 下载下来试试
回复 支持 反对

使用道具 举报

发表于 2020-11-11 11:28:52 | 显示全部楼层
开机初始化时一次性加载,然后使用的时候直接调用,因为一直使用,所以只要不掉电,就不考虑释放动态内存是吗?如果一直不释放,测试会导致动态内存越运行越卡,内存溢出吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-11 14:14:13 | 显示全部楼层
本帖最后由 ZZZ_XXJ 于 2020-11-11 14:16 编辑
莫西莫_qR666 发表于 2020-11-11 11:28
开机初始化时一次性加载,然后使用的时候直接调用,因为一直使用,所以只要不掉电,就不考虑释放动态内存是 ...

不会的,这个例程只有在加载资源的时候申请动态内存,之后使用不再继续申请,不会一直吃内存。申请的动态内存用来存放图片数据,所以如果图片要一直用,就不能释放。
这种方法必须保证emwin动态内存足够大,因为emwin的所有功能基本上都会使用动态内存,假设光是资源加载就已经快吃满内存了,那其他功能肯定会受影响。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 11:03 , Processed in 0.034630 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表