Chinaunix首页 | 论坛 | 博客
  • 博客访问: 477057
  • 博文数量: 100
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 955
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-21 09:30
文章分类

全部博文(100)

文章存档

2017年(1)

2016年(16)

2015年(83)

我的朋友

分类: 嵌入式

2015-07-02 10:45:16

平台模型分为设备层和驱动层
设备层比较简单,作用只是声明设备资源而已,表示存在这个设备,关键点是一下3个:
resource 结构体,生命设备地址、类型等等,name成员很重要,和设备层的platform_driver中的name匹配
platform_device_register 设备注册函数
platform_device_unregister 设备注销函数

驱动层:
驱动层负责设备的运行操作,关键是
platform_driver  结构体,成员指向probe、remove等函数,也有name成员,和设备层的resource中的name匹配

不管先注册驱动层,还是先注册设备层,结果都是先调用驱动层的probe函数

驱动层和标准字符设备驱动的差别:
原本的init函数只需执行platform_driver_register驱动注册函数,
原本的exit函数只需执行platform_driver_unregister驱动注销函数,
probe函数中添加platform_get_resource函数,用于从设备层获取设备信息(寄存器地址、类型、中断等)
注册设备的步骤放到probe函数中执行,删除设备的步骤放到remove函数中执行
阅读(1446) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~