本次主要是通过讲解蜂鸣器的开发来讲述驱动开发的流程,平台是三星猎户座4412.
本次使用的是板载蜂鸣器为有源蜂鸣器,在这里我们先看电路图:
从电路图中我们可以看出我们的电平信号会控制NPN型三极管的方式驱动蜂鸣器,可以看出当PWM0为高电平时,蜂鸣器可以发出声音,低电平不发声音,接下来我们找PWM0是哪个引脚,如下图:
从图中可知,PWM0是GPD0_0,下面我们去找datasheet,以确定GPD0_0的地址,如下图:
从图中可以看出,GPD0_0的地址为0x1140000 + 0x00A0 = 0x114000A0,好的,我们现在已经掌握了我们所需要的数据:蜂鸣器高电平响,低电平不响,控制它的引脚为GPD0_0,它的地址为0x114000A0.接下来,我们写驱动程序,如下:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/device.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <asm/uaccess.h>