gpt4 book ai didi

linux-kernel - uboot : What is DECLARE_GLOBAL_DATA_PTR?

转载 作者:行者123 更新时间:2023-12-03 09:26:59 25 4
gpt4 key购买 nike

在一些 uboot 文件中我看到了这样的声明:

DECLARE_GLOBAL_DATA_PTR

就在包含内容的正下方...有谁知道这是做什么/为什么这样做的?

谢谢,vj

最佳答案

这是一个宏声明,资源(例如,CPU 寄存器)将被保留用于指向 struct global_data。对于ARM,该宏定义在arch/arm/include/asm/global_data.h中,它保留CPU寄存器r8。

参见README湖4602+ 描述了早期启动时的资源限制。全局数据指针可以轻松访问在此启动阶段最有用的数据元素。

全局意味着该数据普遍可用。 C 源文件在任何编译代码之前使用此声明,以告诉编译器不要将该寄存器(例如 ARM CPU r8)用于其他任何用途。

在启动结束时,例如在 common/main.c main_loop() 中,我看到 DECLARE_GLOBAL_DATA_PTR 仅在少数特定配置中使用。因此,也许由控制台命令驱动的其他操作代码(例如)不需要保留该资源。在 C 源文件中,看起来 25% 使用它,75% 不使用它。

~/u-boot-2012.10$ find . -name "*.c" | wc -l
2824
~/u-boot-2012.10$ find . -name "*.c" | xargs grep DECLARE_GLOBAL_DATA_PTR | wc -l
745

关于linux-kernel - uboot : What is DECLARE_GLOBAL_DATA_PTR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com