vmlinux.lds.S 链接脚本
SECTIONS
{
.init : {
INIT_CALLS
CON_INITCALL-----------> #define CON_INITCALL \
SECURITY_INITCALL VMLINUX_SYMBOL(__con_initcall_start) = .; \
INIT_RAM_FS *(.con_initcall.init) \
} VMLINUX_SYMBOL(__con_initcall_end) = .;
}
}
在init.h里面有这么一句宏定义啊
#define console_initcall(fn) \
static initcall_t __initcall_##fn \
__used __section(.con_initcall.init) = fn
串口驱动---->
\drivers\amlogic\uart\uart\am_uart.c
static int __init am_uart_console_init(void)
{
register_console(&am_uart_console);
return 0;
}
console_initcall(am_uart_console_init);
static void __exit am_uart_exit(void)
{
#if 0
#ifdef CONFIG_AM_UART_CONSOLE
unregister_console(&am_uart_console);
#endif
#endif
platform_driver_unregister(&am_uart_platform_driver);
uart_unregister_driver(&am_uart_reg);
}
module_init(am_uart_init);===============>在启动的时候去调用初始化串口
module_exit(am_uart_exit);
看到这里,我想大家都懂了
阅读(1930) | 评论(0) | 转发(0) |