beep蜂鸣器驱动实验-蜂鸣器驱动框架代码实现

一. 简介

上一篇文章说明了如何在设备树文件中添加蜂鸣器的设备节点。文章地址如下:

beep蜂鸣器驱动实验-开发板上测试设备树文件-CSDN博客

这里学习编写蜂鸣器的驱动框架代码,驱动框架代码其实与 Led灯驱动框架是一样的。

二. 蜂鸣器驱动框架代码实现

1. 创建 vscode工程

打开 ubuntu系统,进入 如下目录下:

/home/wangtian/zhengdian_Linux/Linux_Drivers

在 上面目录下创建 工程目录 7_beep:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers$ mkdir 7_beep

(1) 拷贝 .vscode

将前面实验 6_gpioled 工程中 .vscode目录及其下文件拷贝到该工程下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/7_beep$ sudo cp ../6_gpioled/.vscode/ ./ -rf
[sudo] wangtian 的密码: 
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/7_beep$ 

注意: 拷贝.vscode 目录及其下文件的原因在于,.vscode目录下的文件中设置了 驱动程序可能会调用到的 Linux内核源码的路径(NXP官方)。

(2) 拷贝 Makefile文件

将前面实验 6_gpioled 工程中 Makefile拷贝到该工程下,操作如下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/7_beep$ cp ../6_gpioled/Makefile ./

更改 Makefile文件的目标文件名,更改为如下:

obj-m := beep.o

创建 beep.c文件:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/Linux_Drivers/7_beep$ touch beep.c

2. 蜂鸣器驱动代码框架

将 6_gpioled 工程中 gpioled.c文件中头文件拷贝到 beep.c文件中:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_gpio.h>

下来编写 蜂鸣器的驱动框架代码。beep.c文件代码如下:

相关推荐
卑微求AC43 分钟前
(C语言贪吃蛇)14.用绝对值方式解决不合理的走位
linux·c语言·开发语言·嵌入式·c语言贪吃蛇
prettyxian1 小时前
【Linux】基础指令 1
linux
Shanxun Liao2 小时前
VMware ESXi Centos7网卡名称 ens192 变更eth0
linux·服务器·网络
爱吃龙利鱼2 小时前
网络基础知识笔记(一)
linux·运维·网络·云原生
病树前头3 小时前
一些以前使用的linux及shell命令,gnuplot脚本
linux·shell
玉树临风江流儿3 小时前
Linux驱动开发(速记版)--设备树插件
linux·驱动开发
九本才4 小时前
ASP.NET Core 打包net8.0框架在Linux CentOS7上部署问题
linux·运维·服务器
S hh4 小时前
【Linux】进程替换、命令行参数及环境变量(超详解)
linux·运维·服务器
三玖诶4 小时前
Linux中的 `vi` 与 `vim` 使用详解
linux·vim·vi
小林熬夜学编程4 小时前
【Linux系统编程】第二十七弹---文件描述符与重定向:fd奥秘、dup2应用与Shell重定向实战
java·linux·服务器·c语言·算法