- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
目 录
前言
linux架构下platform总线详解
Linux驱动之触摸屏
网卡驱动的流程分析
lcd驱动程序之显示图片
Linux驱动静态编译和动态编译方法详解
本文档使用 看云 构建 - 2 -
前言
前言
原文出处 :嵌入式驱动开发
作者 :qq
本系列文章经作者授权在看云整理发布 ,未经作者允许 ,请勿转载 !
嵌入式驱动开发
嵌入式驱动开发主要就是以linux为操作系统为基础的开发 ,CSDN讲记录我成长的点点滴
滴 ,我会朝着一个优秀的嵌入式开发人员去奋斗与追求。
本文档使用 看云 构建 - 3 -
linux架构下platform总线详解
linux架构下platform总线详解
学习驱动一定要掌握驱动的模型 ,platform总线在内核中用的非常频繁 ,还有一个是Input
输入子系统 ,platform总线的好处是 ,inux从2.6起就加入了一套新的驱动管理和注册的机制
platform平台总线 ,是一条虚拟的总线 ,设备用platform_device表示 ,驱动用
platform_driver进行注册。于传统的bus/device/driver机制相比 ,platform由内核进行统
一管理 ,在驱动中使用资源 ,提高了代码的安全性和可移植性。当硬件部分的时序变了或者
芯片替换了 ,我们只需要修改硬件部分的代码 ,还有一部分代码是属于内核的稳定部分是不
用修改的 ,这就是一种通用的接口。
1、定义一个platform_device,并注册 /* 硬件部分 */
2、定义一个platform_driver,并注册 /* 稳定部分 */
bus_dev_drv模型
dev :(属于不稳定的部分 )
platform_device_register(led_dev);
static struct resource led_resource[] {
platform_device_unregister(led_dev);
static struct resource led_resource[] {
[0] {
.start 0 //gpio_con gpio_dat两个寄存器占八个字
节
.end 0+ 8 - 1,//所以需要映射长八个字节
.flags IORESOURCE_MEM,
},
[1] {
.start 8,
.end 8,
.flags IORESOURCE_IRQ,
}
};
static void led_release(struct device * dev)
{
}
static struct platform_device led_dev {
.name myled,
.id -1,
.num_resources ARRAY_SIZE(led_resource),
本文档使用 看云 构建 - 4 -
linux架构下platform总线详解
.resource led_resource,
.dev {
.release led_release,
},
};
drv : (稳定的部分)
struct platform_driver led_drv {
.probe led_probe,
.remove led_remove,
.driver {
.name myled,
}
}
文档评论(0)