Linux kernel uboot:DECLARE_GLOBAL_DATA_PTR是什么?

Linux kernel uboot:DECLARE_GLOBAL_DATA_PTR是什么?,linux-kernel,u-boot,Linux Kernel,U Boot,在一些uboot文件中,我看到了以下声明: 声明\u全局\u数据\u PTR 右下方包括。。。。有人知道这是怎么做的吗 谢谢, vj这是一个宏声明,表示资源(例如,CPU寄存器)将保留用于指向结构全局_数据。对于ARM,宏在arch/ARM/include/asm/global_data.h中定义,并保留CPU寄存器r8 见l。4602+描述早期引导中的资源约束。全局数据指针可以方便地访问在此引导阶段最有用的数据元素 “全局”表示此数据通常可用。C源文件在编译代码之前使用此声明,告诉编译器不要将

在一些uboot文件中,我看到了以下声明:

声明\u全局\u数据\u PTR

右下方包括。。。。有人知道这是怎么做的吗

谢谢,
vj

这是一个宏声明,表示资源(例如,CPU寄存器)将保留用于指向结构全局_数据。对于ARM,宏在arch/ARM/include/asm/global_data.h中定义,并保留CPU寄存器r8

见l。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

这是一个宏声明,资源(例如CPU寄存器)将保留用于指向结构全局_数据。对于ARM,宏在arch/ARM/include/asm/global_data.h中定义,并保留CPU寄存器r8

见l。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