• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Linux内核中对 设备 的描述

chen0000009 2020-11-25 浏览量:445

Linux内核里面使用struct device描述一个设备,那么填充这个结构体的过程是在哪里完成的

它跟设备树是怎么挂钩的

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 当bootloader引导加载Linux内核后,Linux会从head.S开始运行,将bootloader通过寄存器r2传过来的设备树起始地址保存到一个变量中,然后等到跳转到start_kernel()中,start_kernel()--->setup_arch(&command_line)--->****--->unflatten_dt_nodes(blob mem dad mynodes)中得到device_nodedevice_node最终一般会被挂接到具体的struct device结构体
    • 发布于 2020-11-26
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 鉴于本人目前技术水平,只能把我的认知给你参考。应该是这样的:系统开机后,uboot把kernel加载进内存后,也会把dtb的地址传递给内核。内核会把dtb文件进行解析,生成许多的struct device结构体,然后又将一些符合条件的surcut device生成struct device_node结构体。当你加载内核驱动的时候,你的ko模块里的device结构体里的.compatible属性的字符串和strcut device_node里的compatible属性的字符串进行匹配。匹配成功就执行probe函数。
    • 发布于2020-11-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Linux内核中对 设备 的描述