在ARM GCC的* .ld文件中有一些我无法理解的语句。
md5(uniqid())
我用记事本搜索了整个项目,值.init :
{
__initcall_start = .;
KEEP(*(.initcall1.init))
KEEP(*(.initcall2.init))
KEEP(*(.initcall3.init))
KEEP(*(.initcall4.init))
KEEP(*(.initcall5.init))
KEEP(*(.initcall6.init))
__initcall_end = .;
} >FLASH
只出现在这个* .ld文件中。
initcall1
E:\pos-orig\Gemini\system\sys_generic.ld (1 hit)
Line 26: KEEP(*(.initcall1.init))
,initcall1
...用于什么?
我如何理解initcall2
?
答案 0 :(得分:2)
这linker script说
来自的.initcall1.init
,...,.initcall6.init
部分
所有输入文件都在符号__initcall_start
之间输出
输出__initcall_end
部分中的.init
以及所有这些内容
将被保护免受垃圾收集。
initcall1,initcall2用于什么?
Documentation: Kernel Initialization Mechanisms
我怎样才能理解' KEEP(*(。initcall3.init))'?