嵌入式linux中编写驱动程序的时候用到的头文件问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式linux中编写驱动程序的时候用到的头文件问题?相关的知识,希望对你有一定的参考价值。

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <asm/irq.h>
#include <linux/interrupt.h>
#include <asm/uaccess.h>
//#include <asm/arch/regs-gpio.h>
#include <mach/regs-gpio.h>
//#include <asm/hardware.h>
#include <mach/hardware.h>
#include <linux/device.h>
#include <linux/poll.h>
#include <linux/gpio.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>
这些头文件定义的内容具体是什么?编写驱动程序的时候需要添加这些头文件,但是却不知道什么时候用什么头文件,看一些驱动程序里面好多函数都是没见过的,不知道是在哪个头文件中定义的。高手帮忙指点下啊

#include <linux/module.h> 模块头文件
#include <linux/kernel.h> 驱动要写入内核,与内核相关的头文件
#include <linux/fs.h> 文件系统头文件
#include <linux/init.h> 初始化头文件
#include <linux/delay.h> 延时头文件
#include <asm/irq.h> 与处理器相关的中断
#include <linux/interrupt.h> 操作系统中断
#include <asm/uaccess.h> 与处理器相关的入口
//#include <asm/arch/regs-gpio.h> 与处理器相关的IO口操作
#include <mach/regs-gpio.h> 同上
//#include <asm/hardware.h> 与处理器相关的硬件
#include <mach/hardware.h> 同上
#include <linux/device.h> 设备驱动文件
#include <linux/poll.h> 轮询文件
#include <linux/gpio.h> 操作系统相关的IO口文件
#include <stdio.h> 标准输入输出
#include <stdlib.h> 标准库
#include <unistd.h>
#include <sys/ioctl.h> IO控制
以下6个是提供的函数中所需的头文件
具体我也不详
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>
参考技术A #include <sys/types.h> 变量类型的头文件,因为linux要兼容各种长度的变量
#include <sys/stat.h> 文件操作的头文件
#include <fcntl.h> 同上
#include <sys/select.h> 同上
#include <sys/time.h> 时间编程的头文件
#include <errno.h> 错误代码头文件

去看看LDD3 每章节的最后总结部分,有重要的函数和其对应的头文件。其实,只要你程序写得多了,积累下来,一看就知道是什么意思。
新手的话,你用source insight查吧
参考技术B 建议安装一个 类似于source insight的软件 碰到未知函数的时候可以搜索一下 就会知道此函数在哪个头文件中定义了 刚开始也许会不太适应 用习惯了 还是蛮不错的 在驱动和内核的学习中还是要很频繁的不断的去内核中查看函数的定义与实现的。总之这个软件对于学习驱动与内核相当有用 参考技术C 您好,这样的情况建议您可以升级到最新版本试一下,或是联系一下官网客服比较好。 参考技术D 楼上的没回答的我知道的几个:
#include <fcntl.h>文件锁函数
#include <sys/time.h>系统时间函数定义
#include <unistd.h>Linux标准函数定义

以上是关于嵌入式linux中编写驱动程序的时候用到的头文件问题?的主要内容,如果未能解决你的问题,请参考以下文章

windows上编译linux程序代码需要用到的头文件

如何在linux中curl.h相关的头文件和库?

写c++扩展的时候,怎么样让node-gyp找到需要的头文件

在linux设备驱动中我们使用到的头文件指的是啥?

Linux系统中查看可执行程序的所在目录

linux下gcc编译的时候提示说头文件找不到?