gpio模拟pwm_Linux pwm子系统分析之二 gpio-pwm驱动实践

在上面一章,我们介绍了pwm子系统的框架以及数据结构等内容,而pwm 子系统中pwm_chip的注册与注销接口也就是实现pwm_chip与pwm_device之间的关联,并将pwm_chip放入系统pwm_chip链表中,而这些接口实现也较简单,就没有展开说明。本章我们主要介绍如何实现一个pwm驱动,本章的目的如下:

  1. 实现一个基于gpio的pwm chip驱动(即通过gpio模拟pwm);
  2. 为了让大家都可以验证该驱动,我们实现了一个虚拟的gpio controller驱动(在之前的linux gpio子系统专栏中已经说明如何实现一个虚拟的gpio controller),并借助sysfs文件系统提供的接口,为该虚拟gpio 控制器的输出值创建一个名为vgpio_out文件,我们可以通过查看该文件的值,确定是否输入高低电平;
  3. 本次实现的驱动均在ubuntu16.04系统下验证通过;
  4. 本次代码已放入gitee上(链接地址)

gpio-pwm功能设计说明

  1. 该驱动可根据传递的gpio参数个数n,创建一个pwm_chip,并为该pwm_chip创建n个pwm device;
  2. 本驱动使用高精度定时器hrtimer(精度为ns),实现周期控制gpio值,从而输出pwm信号。

gpio-pwm驱动涉及的知识点

  1. Platform device、platform driver;
  2. Pwm 子系统中pwm_chip添加接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值