length函数的头文件_Framebuffer 应用编程中涉及的 API 函数

本节程序的目的是:打开 LCD 设备节点,获取分辨率等参数,映射 Framebuffer,最后实现描点函数。
5.2.1 open 函数
在 Ubuntu 中执行“man 2 open”,可以看到 open 函数的说明:

e87860b3d3bd9093dd363e32e126a5a3.png


头文件:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
函数原型:
int open(const char *pathname, int flags); int open(const char
*pathname, int flags, mode_t mode);
函数说明:
① pathname 表示打开文件的路径;
② Flags 表示打开文件的方式,常用的有以下 6 种,
a. O_RDWR 表示可读可写方式打开;
b. O_RDONLY 表示只读方式打开;
c. O_WRONLY 表示只写方式打开;
d. O_APPEND 表示如果这个文件中本来是有内容的,则新写入的内容会接续到原来内容的后面;
e. O_TRUNC 表示如果这个文件中本来是有内容的,则原来的内容会被丢弃,截断;
f. O_CREAT 表示当前打开文件不存在,我们创建它并打开它,通常与 O_EXCL 结合使用,当没有文件时
创建文件,有这个文件时会报错提醒我们;
③ Mode 表示创建文件的权限,只有在 flags 中使用了 O_CREAT 时才有效,否则忽略。
④ 返回值:打开成功返回文件描述符,失败将返回-1。
5.2.2 ioctl 函数
在 Ubuntu 中执行“man ioctl”,可以看到 ioctl 函数的说明:

08e091fc71baf35551439794ac08cd23.png


头文件:
#include <sys/ioctl.h>
函数原型:
int ioctl(int fd, unsigned long request, ...);
函数说明:
① fd 表示文件描述符;
② request 表示与驱动程序交互的命令,用不同的命令控制驱动程序输出我们需要的数据;
③ … 表示可变参数 arg,根据 request 命令,设备驱动程序返回输出的数据。
④ 返回值:打开成功返回文件描述符,失败将返回-1。
ioctl 的作用非常强大、灵活。不同的驱动程序内部会实现不同的 ioctl,APP 可以使用各种 ioctl 跟驱动程序交互:可以传数据给驱动程序,也可以从驱动程序中读出数据。
5.2.3 mmap 函数
在 Ubuntu 中执行“man mmap”,可以看到 mmap 函数的说明:

0f049a7b6a1c7279ab262b39932a8ce7.png


想更深刻地理解 mmap 的内部机制,可以看《嵌入式 Linux 驱动开发基础知识》中关于 mmap 的介绍。作为 APP 开发,只需要知道它的用法就可以了。
头文件:
#include <sys/mman.h>
函数原型:
void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);
函数说明:
① addr 表示指定映射的內存起始地址,通常设为 NULL 表示让系统自动选定地址,并在成功映射后返回该
地址;
② length 表示将文件中多大的内容映射到内存中;
③ prot 表示映射区域的保护方式,可以为以下 4 种方式的组合
a. PROT_EXEC 映射区域可被执行
b. PROT_READ 映射区域可被读出
c. PROT_WRITE 映射区域可被写入
d. PROT_NONE 映射区域不能存取
④ Flags 表示影响映射区域的不同特性,常用的有以下两种
a. MAP_SHARED 表示对映射区域写入的数据会复制回文件内,原来的文件会改变。
b. MAP_PRIVATE 表示对映射区域的操作会产生一个映射文件的复制,对此区域的任何修改都不会写回 原来的文件内容中。 ⑤ 返回值:若成功映射,将返回指向映射的区域的指针,失败将返回-1。


百问网技术论坛:http://bbs.100ask.net/
百问网官方wiki(资料下载):http://wiki.100ask.org/
线上课堂:https://www.100ask.net/index
百问网开发板:
淘宝:https://100ask.taobao.com/
天猫:https://weidongshan.tmall.com/
技术交流群(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
QQ群:869222007
单片机-嵌入式Linux交流群:
QQ群:536785813

http://weixin.qq.com/r/M0hvd2-EwjK9rSsU9x0h (二维码自动识别)


百问科技公众号

http://weixin.qq.com/r/nkx-Z6jEa-UUrewE9xmM (二维码自动识别)


百问科技服务号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xib中UIScrollView固定底部内容

UIScrollView的高度在xib中设置 需要固定的部分用代码添加: UIImageView *textLogo [[UIImageView alloc] initWithFrame:CGRectMake((kMSScreenWith - 153)/2, (kMSScreenHeight - 118 > 549 ? kMSScreenHeight : 667) - 173, 153, 35)]; textLogo.image [UIImage image…

hive

hive 的 表与hdfs数据关系映射放在元数据库中&#xff0c;也就是mysql中&#xff0c;而真正的数据放在 hdfs中&#xff0c;通过mysql中表 &#xff0c;字段等与hdfs上数据的映射来查询 1.hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张数据库…

判断图像局部过暗_CVPR 2020丨基于记忆增强的全局局部整合网络:更准确的视频物体检测方法...

编者按&#xff1a;在视频物体检测任务中&#xff0c;由于相机失焦、物体遮挡等问题&#xff0c;仅基于图像的目标检测器很可能达不到令人满意的效果。针对此类问题&#xff0c;微软亚洲研究院提出了基于记忆增强的全局-局部整合网络(Memory Enhanced Global-Local Aggregation…

第三章:多态

一、多态 1、什么是多态? 解析&#xff1a;不同的对象对于同一个操作&#xff0c;做出的响应不同 具有表现多种形态的能力的特征 2、使用多态的优点 解析&#xff1a;为了实现统一调用 一个小例子&#xff1a;<父类类型作为参数> 父类(Pet) 子类(Gog,Penguin) 主人类(Ma…

请检查virtualboxapi是否正确安装_电机行业安装绝缘轴承规范

1.安装前检查轴承安装前&#xff0c;请检查滚动体表面是否有毛刺&#xff0c;划痕或裂缝。 轴承的径向游隙和轴向游隙是否合格&#xff0c;通常仅测量径向游隙。 其次&#xff0c;检查轴承型号是否正确。 有关滚动轴承的径向游隙标准&#xff0c;请参见下表。 例如&#xff1a;…

matlab时域离散信号与系统,时域离散信号和系统的频域分析

信号与系统的分析方法有两种&#xff1a;时域分析方法和频域分析方法。在连续时间信号与系统中&#xff0c;信号一般用连续变量时间t的函数表示&#xff0c;系统用微分方程描述&#xff0c;其频域分析方法是拉普拉斯变换和傅立叶变换。在时域离散信号与系统中&#xff0c;信号用…

genymotion 此应用与您的手机不兼容

2019独角兽企业重金招聘Python工程师标准>>> 安装arm芯片的转换包&#xff0c;转换包的下载地址&#xff1a;http://pan.baidu.com/s/1dE2EqAH 只要把下载下来的压缩包拖动到模拟器中&#xff0c;点击确定后安装。 安装完成后&#xff0c;需要重启模拟器。 转载于:h…

安卓按钮设置背景颜色不管用_MIUI10新功能:时钟背景黑白自选、公交卡自定义时段唤起...

经历清明假与米粉节后&#xff0c;MIUI10恢复开挂模式&#xff0c;开发版每周给大家推送新功能。本期主要跟大家分享两个要点&#xff0c;其一是时钟背景颜色支持用户选择黑色或者白色&#xff0c;其二是NFC刷卡支持设置优先唤醒时间&#xff0c;降低手工切换操作。■时钟背景可…

数字电视 星座图 matlab,数字电视 MER 及星座图剖析

向天明中国电子测量与仪器学会委员随着数字电视的发展&#xff0c;人们越来越重视数字电视的质量问题&#xff0c;数字电视质量的好坏首先是数字电视信号的质量&#xff0c;因此数字电视信号的分析、测试非常重要&#xff0c;本文重点对数字电视信号的MER及星座图剖析。1、广义…

关于ASP.NET 中的主题

2019独角兽企业重金招聘Python工程师标准>>> 网站的外观是否美观将直接决定其受欢迎的程度&#xff0c;这就意味着网站在开发过程中设计和实现美观实用的用户界面是非常重要的。 在ASP.net 2.0之前主要是用样式表css来实现外观设计。但在ASP.Net 2.0之后&#xff0c…

傅里叶变换matlab案例,基于matlab的傅里叶变换

例子1作用&#xff1a;使用傅里叶变换找出隐藏在噪声中的信号的频率成分。(指定信号的参数&#xff0c;采样频率为1 kHz&#xff0c;信号持续时间为1秒。)Fs 1000; % 采样频率T 1/Fs; % 采样周期L 1000; % 信号长度t (0:L-1)*T; % 时间向量%%形成一个信号&#xff0c;包含振…

WEB渗透—PHP反序列化(八)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

如何部署 Hyperic ,使得从内网监测外网服务器

2019独角兽企业重金招聘Python工程师标准>>> 环境介绍&#xff1a; 外网服务器&#xff1a; www.InnovateDigital.com 用户名/密码 test/test 内网服务器&#xff1a;192.168.1.125 操作系统都是 Centos 7 64bit 过程&#xff1a; 下载 Hyperic 5.8.5 &#xff0c…

tcp 发送 最大数据量_网络基础知识夯实总结(三):TCP协议

近期分享的网络知识包括HTTP协议、DNS协议、HTTPS协议、TCP协议、IP协议、TCP/IP、Web攻击及其他协议。今天内容是TCP协议。TCP协议1. 传输层2. 作用提供可靠的字节流服务3. 大块数据分割成报文段(segment)4. 三次握手1) 发送端发带SYN标志的数据包给对方。2) 接收端收到后&…

安卓开发语言php,go语言支持安卓开发吗

go语言支持安卓开发。使用golang开发android需要下载安装gomobile&#xff0c;然后有两种开发方式&#xff0c;分别为&#xff1a;1、原生应用开发&#xff1b;2、混合绑定开发。本教程操作环境&#xff1a;windows10系统、GO 1.11.2、thinkpad t480电脑。大概14年的时候go语言…

解决python连接mysql,UTF-8乱码问题

在测试“Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序”的程序时&#xff0c;从MySQL中读取的中文输出到网页显示都是问号&#xff0c;如下图&#xff1a; 解决方法&#xff1a; 产生乱码问题&#xff0c;通常都是由于几方面的编码不统一导致的&#x…

Crawler - 如何爬取列表后进行文章的爬取

2019独角兽企业重金招聘Python工程师标准>>> 已知BUG&#xff1a;(version:5) 1-爬取后生成的XML默认编码是Java环境决定导入数据库可能出问题 方法修改xml编码后导入 重点CL 和 CI命令 CL 是爬取List列表 会通过file生成文件 CI 中file是CL执行后生存的File文件 CL…

程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!

欢迎关注专栏&#xff1a;里面定期分享Android和Flutter架构技术知识点及解析&#xff0c;还会不断更新的BATJ面试专题&#xff0c;欢迎大家前来探讨交流&#xff0c;如有好的文章也欢迎投稿。Android高级进阶​zhuanlan.zhihu.com让我来告诉你&#xff0c;35岁以上的人都在干什…

opencv入门_【OpenCV入门之十八】通过形态学操作提取水平与垂直线

小白导读学习计算机视觉最重要的能力应该就是编程了&#xff0c;为了帮助小伙伴尽快入门计算机视觉&#xff0c;小白准备了【OpenCV入门】系列。新的一年文章的内容进行了很大的完善&#xff0c;主要是借鉴了更多大神的文章&#xff0c;希望让小伙伴更加容易理解。如果小伙伴觉…

【译】NoClassDefFoundError和ClassNotFoundException的不同

本文翻译自&#xff1a;Difference between NoClassDefFoundError vs ClassNotFoundExcepiton in Java 如果JVM或者ClassLoader在加载类时找不到对应的类&#xff0c;就会引发NoClassDefFoundError和ClassNotFoundException&#xff0c;这两种错误都非常严重。由于不同的ClassL…