本节程序的目标是:启动 lcd 设备节点,获取分辨率等参数,映射 framebuffer,并最终实现绘点功能。
5.2.1 open 函数在 Ubuntu 中执行“man 2 open”命令,可以查看到 open 函数的详细说明:
头文件:
函数原型:
函数说明: ① 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 函数的详细说明:
头文件:
代码语言:javascript代码运行次数:0运行复制```javascript
PHP5学习对象教程由美国人古曼兹、贝肯、瑞桑斯编著,简张桂翻译,电子工业出版社于2007年12月1日出版的关于PHP5应用程序的技术类图书。该书全面介绍了PHP 5中的新功能、编程方法及设计模式,还分析阐述了PHP 5中新的数据库连接处理、错误处理和XML处理等机制,帮助读者系统了解、熟练掌握和高效应用PHP。
include
函数原型:代码语言:javascript代码运行次数:0运行复制
javascript int ioctl(int fd, unsigned long request, ...);
函数说明: ① fd 参数表示文件描述符; ② request 参数表示与驱动程序交互的命令,不同的命令可以控制驱动程序输出所需的数据; ③ … 表示可变参数 arg,根据 request 命令,设备驱动程序会返回输出数据。 ④ 返回值:成功时返回文件描述符,失败时返回-1。
ioctl 函数的功能非常强大且灵活,不同的驱动程序会实现不同的 ioctl 命令,应用程序可以通过这些命令与驱动程序进行交互,可以向驱动程序发送数据,也可以从驱动程序读取数据。
5.2.3 mmap 函数在 Ubuntu 中执行“man mmap”命令,可以查看到 mmap 函数的详细说明:
要更深入理解 mmap 的内部机制,可以参考《嵌入式 Linux 驱动开发基础知识》中关于 mmap 的介绍。对于应用程序开发,了解其使用方法即可。 头文件:
代码语言:javascript代码运行次数:0运行复制javascript
include
函数原型:代码语言:javascript代码运行次数:0运行复制```javascript
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。









