十足的菜鸟问题,今天终于想通了一点点。
引子:通常在写代码时先要包含一通头文件,这些头文件们在什么地方呢?这个问题起源于课题中需要操作OK6410的PWM寄存器,查了许多文献说需要ioremap()映射,需要包含 asm/io.h。那时还没搞清楚内核编程和应用程序编程的区别(哈哈够菜吧),在用户应用程序中 #include <asm/io.h> 报错未找到,后来才知道#include <asm/io.h> 应在内核编程中编译内核模块使用的,因此引出了问题。两种情况(内核编译和应用程序编译)中#include 查找的文件夹到底在什么地方。
经过试验发现,应用程序编程#include 在编译器(如:arm-linux-4.2.3)目录下usr/include 中查找
内核模块编译时#include 在内核代码目录下的 include 中查找