您当前的位置: 首页 > 

韦东山

暂无认证

  • 0浏览

    0关注

    506博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Framebuffer 应用编程中涉及的 API 函数

韦东山 发布时间:2020-11-13 18:52:38 ,浏览量:0

在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taobao.com/ (淘宝)      https://weidongshan.tmall.com/(天猫) 交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载) 交流群二:QQ群:536785813(单片机-嵌入式) 公 众 号:百问科技

版本日期作者说明V12020韦东山摘自《嵌入式Linux应用开发完全手册》

本节程序的目的是:打开 LCD 设备节点,获取分辨率等参数,映射 Framebuffer,最后实现描点函数。

5.2.1 open 函数

在 Ubuntu 中执行“man 2 open”,可以看到 open 函数的说明: 在这里插入图片描述 头文件:

#include #include #include

函数原型:

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 函数的说明: 在这里插入图片描述 头文件:

#include 

函数原型:

int ioctl(int fd, unsigned long request, ...);

函数说明: ① fd 表示文件描述符; ② request 表示与驱动程序交互的命令,用不同的命令控制驱动程序输出我们需要的数据; ③ … 表示可变参数 arg,根据 request 命令,设备驱动程序返回输出的数据。 ④ 返回值:打开成功返回文件描述符,失败将返回-1。

ioctl 的作用非常强大、灵活。不同的驱动程序内部会实现不同的 ioctl,APP 可以使用各种 ioctl 跟驱动程序交互:可以传数据给驱动程序,也可以从驱动程序中读出数据。

5.2.3 mmap 函数

在 Ubuntu 中执行“man mmap”,可以看到 mmap 函数的说明: 在这里插入图片描述 想更深刻地理解 mmap 的内部机制,可以看《嵌入式 Linux 驱动开发基础知识》中关于 mmap 的介绍。作为 APP 开发,只需要知道它的用法就可以了。 头文件:

#include 

函数原型:

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。

关注
打赏
1658827356
查看更多评论
立即登录/注册

微信扫码登录

0.0394s