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…

java 陷阱,java 中的陷阱。

看了一段北风网的视频&#xff0c;总结几个经典的java陷阱给大家。答案在博客中&#xff1a;http://blog.csdn.net/ol_beta/archive/2010/05/17/5598867.aspx欢迎大家讨论&#xff01;1、找奇数&#xff1a;Java codepublic static boolean isOdd(int i){return i % 2 0;}上面…

python上传本地文件到ftp_python实现的简单FTP上传下载文件实例

本文实例讲述了python实现的简单FTP上传下载文件的方法。分享给大家供大家参考。具体如下&#xff1a;python本身自带一个FTP模块&#xff0c;可以实现上传下载的函数功能。#!/usr/bin/env python# -*- coding: utf-8 -*-from ftplib import FTPdef ftp_up(filename "201…

hive

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

matlab在高等数学中的应用,Matlab在高等数学中的若干应用

收稿日期&#xff1a;2013-01-10 作者简介&#xff1a;周卓越(1992-)&#xff0c;女&#xff0c;在读本科生. E-mail: zhuoyue7220163.com 通讯作者&#xff1a;陈省江(1984-)&#xff0c;男&#xff0c;讲师. E-mail: chentrent126.com 基金项目&#xff1a;福建省教育厅大学生…

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

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

matlab求偏微分方程程序,用MATLAB解偏微分方程.pdf

用MATLAB解偏微分方程.pdf年 月 阴 山 学 刊第 卷 第 期 丫叫 加用 解偏微分方程田 兵包头师范学院 学报编辑部 , 内蒙古 包头摘 要 讨论 了以 中偏徽分方程工具箱的用法 用 这个工具箱解方程的过程是 确 定待解的偏徽分方程 确 定边界条件 确定方程所在城 的几何形状 划分有限…

第三章:多态

一、多态 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…

python复数的实部和虚部都是整数嘛_Python学习笔记:从入门到放弃(2)基本语法...

这次主要就记录一下Python中的基本语法&#xff0c;有标识符&#xff0c;注释&#xff0c;行与缩进&#xff0c;print函数输出以及数字类型和字符串标志符&#xff1a;第一个字符必须是字母表中字母或下划线 _ 。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏…

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

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

jquery-1.10.2.min.map是什么,怎么用?

jquery-1.10.2.min.map是什么&#xff0c;怎么用&#xff1f;转载于:https://www.cnblogs.com/suoking/p/5545220.html

python点击按钮改变图片_单击tkinter按钮时更改图片

点击了python和一些按钮后&#xff0c;会产生一些颜色变化的按钮当单击按钮时&#xff0c;是否可以更改按钮使用的.gif&#xff1f;我希望它在GPIO引脚关闭时显示ON&#xff0c;在GPIO引脚打开时显示off。在目前我有&#xff1a;#BCM17GPIO.setup(17,GPIO.OUT)colour17StringVa…

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

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

php拼接xml特殊字符不显示,使用PHP的XML特殊字符

这里不需要编码这些字符. XML字符串可以使用UTF-8或其他编码.根据编码,序列化器将根据需要进行编码.$foo new SimpleXmlElement(<?xml version"1.0" encoding"UTF-8"?>);$foo->addChild(bar, μmol/l, x10 cells/l);echo $foo->asXml();输出…