当前位置: 技术问答>linux和unix
linux启动时最开始初始化lcd时是在什么地方?
来源: 互联网 发布时间:2016-12-11
本文导语: linux启动时最开始初始化lcd是在什么地方?看了lcd的驱动但是找不到初始化的地方。 | do_initcalls就会调用所有的init_call函数,也就是module_init里声明的函数 #define INITCALLS *(.initcallearly.ini...
linux启动时最开始初始化lcd是在什么地方?看了lcd的驱动但是找不到初始化的地方。
|
do_initcalls就会调用所有的init_call函数,也就是module_init里声明的函数
#define INITCALLS
*(.initcallearly.init)
VMLINUX_SYMBOL(__early_initcall_end) = .;
*(.initcall0.init)
*(.initcall0s.init)
*(.initcall1.init)
*(.initcall1s.init)
*(.initcall2.init)
*(.initcall2s.init)
*(.initcall3.init)
*(.initcall3s.init)
*(.initcall4.init)
*(.initcall4s.init)
*(.initcall5.init)
*(.initcall5s.init)
*(.initcallrootfs.init)
*(.initcall6.init)
*(.initcall6s.init)
*(.initcall7.init)
*(.initcall7s.init)
#define INIT_CALLS
VMLINUX_SYMBOL(__initcall_start) = .;
INITCALLS
VMLINUX_SYMBOL(__initcall_end) = .;
链接器把所有这些函数指针放在相邻的逻辑地址中,因此就会依次初始化了
LCD驱动作为一个module,也不例外
#define INITCALLS
*(.initcallearly.init)
VMLINUX_SYMBOL(__early_initcall_end) = .;
*(.initcall0.init)
*(.initcall0s.init)
*(.initcall1.init)
*(.initcall1s.init)
*(.initcall2.init)
*(.initcall2s.init)
*(.initcall3.init)
*(.initcall3s.init)
*(.initcall4.init)
*(.initcall4s.init)
*(.initcall5.init)
*(.initcall5s.init)
*(.initcallrootfs.init)
*(.initcall6.init)
*(.initcall6s.init)
*(.initcall7.init)
*(.initcall7s.init)
#define INIT_CALLS
VMLINUX_SYMBOL(__initcall_start) = .;
INITCALLS
VMLINUX_SYMBOL(__initcall_end) = .;
链接器把所有这些函数指针放在相邻的逻辑地址中,因此就会依次初始化了
LCD驱动作为一个module,也不例外