没有合适的资源?快使用搜索试试~ 我知道了~
使用STM32 Chrom-GRC™进行图形存储器优化.pdf
需积分: 13 10 下载量 6 浏览量
2020-02-08
16:04:49
上传
评论
收藏 852KB PDF 举报
温馨提示
试读
30页
使用STM32 Chrom-GRC™进行图形存储器优化.pdf gfxmmu介绍 STM32 Chrom-GRC™(GFXMMU)外设是STM32微控制器的新成员 圆形显示的情况下,该外设存储图形帧缓冲器的内存需求可减少20%。
资源推荐
资源详情
资源评论
2018年6月 DocID030788 Rev 1 [English Rev 1] 1/30
1
AN5051
应用笔记
使用STM32 Chrom-GRC™进行图形存储器优化
前言
LCD技术曾经是矩形显示器的专有技术。最新发展创造出了非矩形LCD显示器。这些显示器
对于可穿戴设备等各种应用而言是非常有吸引力的。
STM32 Chrom-GRC™(GFXMMU)外设是STM32微控制器的新成员(参考
表
1:
适用产品
),可以有效支持这种非矩形显示器发展趋势。
GFXMMU只能存储非矩形显示的可见部分,而在圆形显示的情况下,该外设存储图形帧缓冲器
的内存需求可减少20%。因此,GFXMMU使得SRAM/SDRAM不需要向微控制器添加外部元件。
由于不需要外部RAM和充分利用内部RAM的低功耗和高性能特性,嵌入GFXMMU的STM32微
控制器为需要低功耗管理功能和高品质用户接口的可穿戴应用提供了合适的解决方案。
表1. 适用产品
类型 产品编号
微控制器 STM32L4+系列
www.st.com
目录 AN5051
2/30 DocID030788 Rev 1 [English Rev 1]
目录
1 STM32 Chrom-GRC™(GFXMMU)说明 . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 GFXMMU特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 智能架构中的GFXMMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2GFXMMU虚拟缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 虚拟缓冲区概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 虚拟缓冲区使用情况 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 使用LTDC时的虚拟缓冲区使用情况 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 使用DMA2D时的虚拟缓冲区使用情况 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 虚拟缓冲区工作模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 显示形状说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 LUT配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 LUT计算示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4 利用GFXMMU进行存储器优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5GFXMMU系统级操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6 基本配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1 GFXMMU配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.1 GFXMMU虚拟缓冲区基址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.2 GFXMMU块模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.3 GFXMMU物理帧缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6.1.4 GFXMMU默认值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.1.5 GFXMMU LUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2 LTDC配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.1 LTDC帧缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.2 LTDC层间距 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3 DMA2D 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3.1 DMA2D帧缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3.2 DMA2D行偏移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7 软件示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
DocID030788 Rev 1 [English Rev 1] 3/30
AN5051 目录
3
7.1 GFXMMU配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.1.1 使用STM32CubeMX的GFXMM配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.1.2 GFXMMU初始化代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.2 LTDC 配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.2.1 使用STM32CubeMX的LTDC配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.2.2 LTDC初始化代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.3 DMA2D 配置示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.3.1 DMA2D初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7.3.2 DMA2D将图像从闪存复制到帧缓冲区 . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8 应用程序示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
9 特别建议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11 版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
表格索引 AN5051
4/30 DocID030788 Rev 1 [English Rev 1]
表格索引
表1. 适用产品 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
表2. 虚拟缓冲区行宽(以像素为单位) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
表3. 32L4R9IDISCOVERY套件的圆形显示器的可见像素说明 . . . . . . . . . . . . . . . . . . . . . . . . . . 10
表4. LUT计算示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
表5. 针对390 x 390显示器的内存优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
表6. 文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
表7. 中文文档版本历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
DocID030788 Rev 1 [English Rev 1] 5/30
AN5051 图片目录
5
图片目录
图1. 具有GFXMMU的STM32L4+系列系统架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
图2. 虚拟缓冲区概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
图3. 圆形显示器的内存优化示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
图4. 块粒度开销 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
图5. 从非映射块进行读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
图6. 从映射块进行读取 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
图7. 向非映射块写入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
图8. 向映射块写入 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
图9. STM32CubeMX中的GFXMMU LUT配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
图10. GFXMMU物理帧缓冲区声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
图11. GFXMMU初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
图12. STM32CubeMX中的LTDC层设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
图13. LTDC初始化代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
图14. DMA2D初始化代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
图15. DMA2D将图像从闪存复制到帧缓冲区. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
图16. GFXMMU应用程序示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
剩余29页未读,继续阅读
资源评论
thanmail
- 粉丝: 2
- 资源: 26
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功