- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux设备驱动之platform总线.doc
LINUX设备驱动之platform总线
--------------------------------------------------------------
分析linux内核源码,版本号为2.6.32.3
-------------------------------------------------------------
阅读本文之前,如果你对设备驱动模型还不了解,请先阅读本站设备驱动模型相关文章。
Platform总线是kernel中的一种虚拟总线,2.6版本很多驱动都用它来实现。
一.Platform初始化
系统启动时初始化时创建了platform_bus设备和platform_bus_type总线:
内核初始化函数
/*
* Ok, the machine is now initialized. None of the devices
* have been touched yet, but the CPU subsystem is up and
* running, and memory and process management works.
*
* Now we can finally start doing some real work..
*/
static void __init do_basic_setup(void)
{
cpuset_init_smp();
usermodehelper_init();
init_tmpfs();
driver_init(); //go in.
init_irq_proc();
do_ctors();
do_initcalls();
}
/**
* driver_init - initialize driver model.
*
* Call the driver model init functions to initialize their
* subsystems. Called early from init/main.c.
*/
void __init driver_init(void)
{
/* These are the core pieces */
devtmpfs_init();
devices_init();
buses_init();
classes_init();
firmware_init();
hypervisor_init();
/* These are also core pieces, but must come after the
* core core pieces.
*/
platform_bus_init(); //hackson,goin.
system_bus_init();
cpu_dev_init();
memory_dev_init();
}
我们看看platform_bus_init()函数:
int __init platform_bus_init(void)
{
int error;
early_platform_cleanup();
error = device_register(platform_bus);
if (error)
return error;
error = bus_register(platform_bus_type);
if (error)
device_unregister(platform_bus);
return error;
}
device_register(platform_bus)中的platform_bus如下:
struct device platform_bus = {
.init_name = platform,
};
改函数把设备名为platform 的设备platform_bus注册到系统中,其他的platform的设备都会以它为parent。它在sysfs中目录下.即 /sys/devices/platform。
接着bus_register(platform_bus_type)注册了platform_bus_type总线,看一下改总线的定义:
struct bus_type platform_bus_type = {
.name = platform,
.dev_attrs = platform_dev_attr
您可能关注的文档
- foreign_exchange_and_exchange_rate.ppt
- framebuffer驱动全篇.doc
- GLC15(A)型矿用缺水传感器.doc
- GUIDEDWRITING记叙文.ppt
- GZL系列干法辊压制粒机.doc
- HAY-GROUP-绩效管理体系方法论.ppt
- hg循环流化床垃圾焚烧发电工艺介绍.doc
- html电子书转txt工具.doc
- IADC钻头磨损分级标准和代号.doc
- ICU监护内容和监护分级.ppt
- 〖物 理〗透镜(课件)--2024-2025学年苏科版物理(2024版)八年级上册.pptx
- 〖物 理〗声音的特性++2024-2025学年苏科版物理八年级上册.pptx
- 〖物 理〗第一章声现象单元练习-2024-2025学年苏科版八年级上册物理.docx
- 〖物 理〗第二章光现象单元练习题-2024-2025学年苏科版八年级上册物理.docx
- 〖物 理〗熔化和凝固课件-2024-2025学年苏科版物理(2024)八年级上册.pptx
- 〖物 理〗第二章《光现象》章末测试2024-2025学年物理苏科版八年级上册.docx
- 〖物 理〗第四章物态变化单元测试-2024-2025学年苏科版八年级上册物理.docx
- 〖物 理〗直线运动(课件) 2024-2025学年八年级物理上册同步课堂(苏科版2024).pptx
- 〖物 理〗透镜的应用+-2024-2025学年苏科版物理八年级上册.pptx
- 〖物 理〗第五章物体的运动单元练习-2024-2025学年苏科版八年级上册物理.docx
文档评论(0)