MINI2440 console 初始化

参考:http://blog.csdn.net/ralph_sqd/article/details/6387106

通过查看LOG,添加打印,确认正常的函数调用关系

[    0.000000] Backtrace: 
[    0.000000] [<c00341cc>] (dump_backtrace+0x0/0x10c) from [<c03297b0>] (dump_stack+0x18/0x1c)
[    0.000000]  r7:00000000 r6:00000000 r5:c0481ed0 r4:c045e210
[    0.000000] [<c0329798>] (dump_stack+0x0/0x1c) from [<c0049abc>] (register_console+0x314/0x374)
[    0.000000] [<c00497a8>] (register_console+0x0/0x374) from [<c017d688>] (s3c24xx_serial_initconsole+0x6c/0x90)
[    0.000000] [<c017d61c>] (s3c24xx_serial_initconsole+0x0/0x90) from [<c0015cb8>] (s3c_serial_console_init+0x18/0x20)
[    0.000000]  r7:c0448428 r6:c0020c9c r5:c001f174 r4:c001f174
[    0.000000] [<c0015ca0>] (s3c_serial_console_init+0x0/0x20) from [<c0014e58>] (console_init+0x28/0x3c)
[    0.000000] [<c0014e30>] (console_init+0x0/0x3c) from [<c00088d4>] (start_kernel+0x19c/0x264)
[    0.000000]  r5:c0020ca0 r4:c0481220
[    0.000000] [<c0008738>] (start_kernel+0x0/0x264) from [<30008034>] (0x30008034)
[    0.000000]  r5:c0481530 r4:c0007175
[    0.000000] console [ttySAC0] enabled

分析:

init/main.c------->start_kernel

------>console_init();


vim ./arch/arm/kernel/vmlinux.lds.S


通过查找:con_initcall.init


再去System.map 查找:__con_initcall_start 和 __con_initcall_end


中间的函数,即为加载console初始化函数:console_initcall(s3c_serial_console_init);


猜你喜欢

转载自blog.csdn.net/yangchaofeng001/article/details/45586565