栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

编译进入内核的驱动程序的init函数调用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编译进入内核的驱动程序的init函数调用

内置驱动程序的 init
例程仍可以使用

module_init()
宏声明该入口点。或者,
device_initcall()
当驱动程序永远不会被编译为可加载模块时,驱动程序可以使用。或者要在启动顺序的早期阶段移动其初始化,驱动程序可以使用
subsys_initcall()

include/linux/init.h
调用这些 初始化 例程的顺序中,描述为:

我假定设备驱动程序的这些 小节

drivers
与Linux内核源树的目录中的子目录相对应,并且 链接顺序 记录在中的每个子目录的 内置.o
文件中
drivers
。因此,在内核引导过程中,每个内置驱动程序的 init 例程最终都由
do_initcalls()
in
执行
init/main.c


设备驱动程序的 初始化 例程负责探测系统,以验证硬件设备是否确实存在。探测失败时,驱动程序不应分配任何资源或注册任何设备。

更新
在内核命令行中传递选项“
initcall_debug”将导致每个initcall的计时信息被打印到控制台。initcall用于初始化静态链接的内核驱动程序和子系统,并为Linux引导过程贡献大量时间。输出如下:

calling  tty_class_init+0x0/0x44 @ 1initcall tty_class_init+0x0/0x44 returned 0 after 9765 usecscalling  spi_init+0x0/0x90 @ 1initcall spi_init+0x0/0x90 returned 0 after 9765 usecs

参考:http :
//elinux.org/Initcall_Debug



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号