华清平台总线驱动201208(不同平台)

华清平台总线驱动201208(不同平台)

一,
(一)代码编写
编写一个能在多平台下使用的led驱动
1,注册一个platform_device,定义资源:地址和中断号
struct platform_device led_pdev = {
.name = , //用于匹配
.id = -1,
.num_resources = ,
.resource = , //指针变量,指向resource结构体
} //主要是这几个成员

struct resource{
resource_size_t start; //开始
resource_size_t end; //结束
const char *name; //描述,自定义
unsigned long flags; //区分当前资源描述的是中断(IORESOURCE_IRQ)还是内存(IORESOURCE_MEM)
struct resource *parent, *sibling, *child; //父母,兄弟,孩子
}
2,注册一个platform_driver,实现操作设备的代码
注册完毕,同时如果和pdev匹配成功,自动调用probe方法:
probe方法:对硬件进行操纵
a,注册设备号,并且注册fops–为用户提供一个设备标示,同时提供文件操作io接口
b,创建设备节点
c,初始化硬件
ioremap(地址); //地址从pdev需要获取
readl/writel();
d,实现各种io接口:xxx_open, xxx_read,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值