在编写嵌入式LINUX驱动程序时(S3C6410+嵌入式LINUX系统),需要添加很多头文件,这些头文件均位于嵌入式LINUX源码中,因此编译驱动前,应先安装嵌入式LINUX源码,并至少对嵌入式LINUX内核编译一次。
这些头文件根据所处的位置不同,可以分为四种类型:
假定嵌入式LINUX内核源码的安装目录为“KERNEL_DIR/”
1. linux/xxxx.h 为系统级文件,是“KERNEL_DIR/include/linux/”目录里的头文件,LINUX系统通用文件,与平台无关;
2. asm/xxxx.h 为体系级文件,是“KERNEL_DIR/arch/arm/include/asm/”目录里的头文件,ARM体系的通用文件,与ARM相关;
3. plat/xxxx.h 为平台级文件,是“KERNEL_DIR/arch/arm/plat-samsunmg/include/plat/”目录里的头文件,三星ARM平台专用文件,与三星的ARM相关;
4. mach/xxxx.h 为板级文件,是“KERNEL_DIR/arch/arm/mach-sec64xx/include/mach/”目录里的文件,三星S3C64XX系列的专用文件,与S3C64XX有关。系统移植,通常是在板级上折腾。
这些头文件根据所处的位置不同,可以分为四种类型:
- #include <linux/miscdevice.h>
- #include <asm/irq.h>
- #include <plat/gpio-cifg.h>
- #include <mach/hardware.h>
假定嵌入式LINUX内核源码的安装目录为“KERNEL_DIR/”
1. linux/xxxx.h 为系统级文件,是“KERNEL_DIR/include/linux/”目录里的头文件,LINUX系统通用文件,与平台无关;
2. asm/xxxx.h 为体系级文件,是“KERNEL_DIR/arch/arm/include/asm/”目录里的头文件,ARM体系的通用文件,与ARM相关;
3. plat/xxxx.h 为平台级文件,是“KERNEL_DIR/arch/arm/plat-samsunmg/include/plat/”目录里的头文件,三星ARM平台专用文件,与三星的ARM相关;
4. mach/xxxx.h 为板级文件,是“KERNEL_DIR/arch/arm/mach-sec64xx/include/mach/”目录里的文件,三星S3C64XX系列的专用文件,与S3C64XX有关。系统移植,通常是在板级上折腾。