linux中platform与中断
来源:互联网 发布:天津seo建站 编辑:程序博客网 时间:2024/05/20 02:23
学习总结:
在linux2.6中引入platform的概念,包括platform_device与platform_driver结构。每个设备的资源(地址、中断号等)在platform_device中的resource中描述,resource结构在kernel/include/linux/ioport.h定义,resource资源一般都位于/arch/arm/mach-xxx中定义。开发设备驱动时,不但注册platform_device设备,还要注册platform_driver驱动。platform_device与platform_driver结构体中都有name成员,两个结构体的name成员必须匹配。驱动程序注册时找到与其name相同的platform_device后,调用其结构中的probe()函数进行相关初始化,probe()函数通过platform_get_resource()获取platform_device中的resource资源信息。在probe()可以进行字符设备的注册,包括file_optations成员的实现。从resource中可以通过platform_get_irq()获取其中资源的中断号(看具体定义是硬中断号还是软中断号),从而可以调用request irq()进行中断请求。在linux2.6之后,内核始祖Linus Torvalds发现内核充斥大量板级的垃圾代码而震怒,arm社区于是借鉴PowerPC引入设备树。将板级信息用设备树表示,通过uboot的解析之后传给linux内核。设备树描述了所有的板级信息,由platform_device与resource结构定义的一些实体都不再需要,内核会根据设备树的信息利用函数of_platform_bus_probe自动展开为驱动程序probe()函数的platform_device结构的入参,这样在probe()中就可以用platform_get_resource()获取资源。在进行中断注册时会与原来不同,没用设备树时从resource读出的中断号为软中断号,采用设备树时中断号为硬件中断号,这是需要利用irq_of_parse_and_map()进行动态分配软中断号,再利用request irq()进行中断请求。
- linux中platform与中断
- linux ------ platform device 与 platform driver
- linux中platform设备autoprobe与驱动绑定理解
- Linux中Platform设备驱动
- linux中断--LINUX中断机制与信号
- linux 中断与时钟
- MSI中断与Linux
- linux 中断与时钟
- linux 中断与信号
- linux中断与定时器
- linux中platform总线解析(一)(platform总线初始化)
- linux中platform总线解析(二)(platform设备的注册)
- linux中platform总线解析(三)(platform驱动的注册)
- Linux 关中断 与 开中断
- Linux 关中断 与 开中断
- Linux 关中断 与 开中断
- linux驱动,中断中关闭中断
- Linux内核中platform驱动模型架构与dm9000网卡驱动移植
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(2)
- Android 属性 allowBackup 安全风险浅析
- 基于C语言EOF与getchar()的使用详解
- Android基础UI控件之Button
- 大端模式和小端模式
- linux中platform与中断
- 冒泡排序学习心得(Java实现)
- AppStore上架图片资源信息
- WIN32汇编 Richedit控件的使用
- 《TCP/IP详解》学习笔记-第4/5章 ARP和RARP
- Android使用Monkey的自动化测试
- 奈何桥,孟婆汤
- HDU1392 凸包问题求周长 + 裸 + Graham算法
- 打印蛇形矩阵