新手上路
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2021-8-29
- 在线时间
- 12 小时
|
本帖最后由 arminker 于 2021-9-20 07:04 编辑
在uboot的c代码中,我们经常会看到这样的包含
- #include <asm/xxx/xxx.h>
- #include <linux/xxx.h>
复制代码
头文件搜素目录在 {uboot_root}/include目录,进入该目录,发现存在linux目录,但是不存在asm目录。
问题起因:asm到底是什么呢?
解答1:老版本uboot中
在老版本的uboot中,分析顶层Makefile,会发现会最终调用mkconfig脚本,mkconfig是一个shell脚本,
mkconfig会根据用户提供的ARCH变量值,生成asm符号链接,指向asm-$(ARCH)目录。
因此,asm/xxx/xxx.h最终找到的头文件时asm-$(ARCH)/下的头文件。
新的问题:新版本uboot中貌似不是这样
在新版本uboot中,分析顶层Makefile,并没有调用mkconfig这个脚本,搜索uboot目录下的所有文件,也没有找到关于asm这个符号的定义。
然而,
新版本uboot中,一些c文件依然使用#include <asm/xxx/xxx.h>来包含头文件,现在又没有定义asm符号链接,那编译器究竟是如何找到相应头文件的呢?
被这个问题困扰几天了,坑请各位大佬指点一二,谢谢了
|
|