OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3710|回复: 4

关于新uboot中头文件包含<asm/xxx.h>中asm的疑问

[复制链接]

0

主题

12

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-8-29
在线时间
12 小时
发表于 2021-9-20 07:02:15 | 显示全部楼层 |阅读模式
本帖最后由 arminker 于 2021-9-20 07:04 编辑

在uboot的c代码中,我们经常会看到这样的包含
  1. #include <asm/xxx/xxx.h>
  2. #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符号链接,那编译器究竟是如何找到相应头文件的呢

被这个问题困扰几天了,坑请各位大佬指点一二,谢谢了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2021-7-25
在线时间
6 小时
发表于 2021-9-24 09:54:37 | 显示全部楼层
有asm这样的目录的。。。编译完后,你再去用grep搜索,可以找到
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-8-29
在线时间
12 小时
 楼主| 发表于 2021-9-26 07:55:21 | 显示全部楼层
瓦达 发表于 2021-9-24 09:54
有asm这样的目录的。。。编译完后,你再去用grep搜索,可以找到

新版uboot好像不是这样,顶层makefile中也没有创建asm符号链接的操作。搜索整个源码搜索关键字,也没有找到。

唯一的,会成成一个名字叫做arch的符号链接,arch会根据ARCH指向特定的体系结构相关的文件夹。
回复 支持 反对

使用道具 举报

70

主题

6698

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12692
金钱
12692
注册时间
2012-11-26
在线时间
3711 小时
发表于 2021-9-26 13:01:15 | 显示全部楼层
不清楚,也许是编译器的隐性路径吧

就像keil一样,直接include "string.h" "math.h"这些库文件,是不需要指定路径的,编译器自己处理了

也许 gnu也是一样隐性处理的,猜的
学无止境
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-8-29
在线时间
12 小时
 楼主| 发表于 2021-9-26 14:34:38 | 显示全部楼层
jermy_z 发表于 2021-9-26 13:01
不清楚,也许是编译器的隐性路径吧

就像keil一样,直接include "string.h" "math.h"这些库文件,是不需 ...

还需要进一步研究,才能得到明确的答案
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 16:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表