尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
飞凌嵌入式ElfBoard-LCD显示图片(bmp)编程示例之基础概念介绍
介绍framebufferFramebuffer 字面意思就是帧缓存的意思即显存里面保存着一帧图像。事实上对于嵌入式系统而言。没有真正意义上的显存Framebuffer 是通过内存模拟出来的。1.LCD FrameBuffer里的若干字节表示具体根据驱动适配LCD屏幕上的一个像素点。1RGB88832bpp占4字节分别是A8、R8、G8、B8一般只用其中低24位高8位表示透明度。2RGB56516bpp占2字节分别是R5、G6、B5比较常用的一种颜色3RGB555很少用。假设LCD屏幕分辨率是800x600每个像素占4字节那么framebuffer 大小就是800x600x41920000字节2.fb与应用程序的互交对于应用程序而言它和其它的设备并没有什么区别用户可以把fb看成是一块内存既可以向内存中写数据也可以读数据。fb的显示缓冲区位于内核空间。应用程序可以把此空间映射到自己的用户空间再进行操作。3.在应用程序中操作/dev/fbn的一般步骤1打开/dev/fbn设备文件。2用ioctl操作取得当前显示屏幕的参数如屏幕的分辨率、每个像素点的比特数。根据屏幕的参数可计算屏幕缓冲区的大小。3用mmap函数将屏幕缓冲区映射到用户空间。4映射后就可以直接读/写屏幕缓冲区进行绘图和图片显示。介绍mmapmmap概念存储映射 I/O这种高级 I/O方式它的一个非常经典的使用场景便是用在 Framebuffer 应用编程中。通过 mmap()将显示器的显示缓冲区显存映射到进程的地址空间中这样应用程序便可直接对显示缓冲区进行读写操作。为什么这里需要使用存储映射 I/O 这种方式呢其实使用普通的 I/O 方式譬如直接 read、write也是可以的只是当数据量比较大时普通 I/O 方式效率较低。假设某一显示器的分辨率为 1920 * 1080像素格式为ARGB8888针对该显示器刷一帧图像的数据量为 1920 x 1080 x 32 / 8 8294400 个字节约等于 8MB这还只是一帧的图像数据而对于显示器来说显示的图像往往是动态改变的意味着图像数据会被不断更新。在这种情况下数据量是比较庞大的使用普通 I/O 方式必然导致效率低下所以才会采用存储映射I/O 方式。用法void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);下面介绍一下 mmap 函数的各个参数作用addr指定映射的虚拟内存地址可以设置为 NULL让 Linux 内核自动选择合适的虚拟内存地址。length映射的长度prot映射内存的保护模式可选值如下PROT_EXEC可以被执行PROT_READ可以被读取PROT_WRITE可以被写入PROT_NONE不可访问flags指定映射的类型常用的可选值如下MAP_FIXED使用指定的起始虚拟内存地址进行映射MAP_SHARED与其它所有映射到这个文件的进程共享映射空间可实现共享内存MAP_PRIVATE建立一个写时复制Copy on Write的私有映射空间MAP_LOCKED锁定映射区的页面从而防止页面被交换出内存…fd进行映射的文件句柄offset文件偏移量从文件的何处开始映射
RELATED

相关推荐

3个关键问题让你彻底掌握Momentum-Firmware:从源码编译到高级定制全攻略

3个关键问题让你彻底掌握Momentum-Firmware:从源码编译到高级定制全攻略

3个关键问题让你彻底掌握Momentum-Firmware:从源码编译到高级定制全攻略 【免费下载链接】Momentum-Firmware 🐬 Feature-rich, stable and customizable Flipper Firmware 项目地址: https://gitcode.com/GitHub_Trending/mo/Momentum-Firmware …

📅 2026/9/26 1:04:48
在数字阅读时代,如何为你的小说收藏打造永不消失的私人图书馆?

在数字阅读时代,如何为你的小说收藏打造永不消失的私人图书馆?

在数字阅读时代,如何为你的小说收藏打造永不消失的私人图书馆? 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在互联网的浪潮中,优秀的小说作品如…

📅 2026/9/23 17:46:07
Claude Code权限系统三层过滤模型解析与实践

Claude Code权限系统三层过滤模型解析与实践

1. Claude Code权限系统架构解析Claude Code作为新一代智能编程辅助工具,其权限系统采用了独特的三层过滤模型(Three-Layer Filter Model),这是其安全架构的核心设计。这个模型由Allow层、Verify层和Deny层组成,每层都…

📅 2026/9/25 10:38:43
MORE NEWS

更多资讯

📰

UHF超高频RFID产线管理系统实战:从标签选型到RSSI预警

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

三相MMC简化模型搭建实战:基于Sysplorer的建模与调试全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

msicuu2:Windows Installer元数据腐化清理工具

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

QuestaSim 10.6c 安装与可信验证实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

江西省靠谱的铸铝门供应商价格公道不玩套路

在农村自建房、别墅庭院新建改造的过程中,入户大门不仅承担着防盗安全的基础功能,更承载着家庭门面的审美需求,铸铝大门作为高端户外入户门的主流选择,近年来受到越来越多下沉市场业主与经销商的青睐。 但选择靠谱的铸铝门供应商却…

📰

2026开题答辩AI PPT工具实测:Gamma、MindShow、讯飞智文、Beautiful.ai选型指南

每年三四月份,总有一批人要经历开题答辩、中期检查、毕业答辩这几道坎。我前后帮过不下三十个师弟师妹改过答辩PPT,也见证了他们从"熬夜排版到凌晨三点"到"半小时搞定初稿"的转变。这个转变的关键,就是选对了AI PPT生成工…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬