linux的驱动开发——简单驱动程序编写

1.字符设备驱动介绍

\qquad 字符设备驱动是linux驱动中,最基本的一类设备驱动,字符设备就是按照一个字节一个字节的方式进行读写操作的设备。读写数据分先后顺序,我们常见的单片机外设,比如led灯、按键、I2C、SPI、LCD等等都属于字符设备,这些字符设备的驱动就是字符设备驱动。
\qquad 在linux程序中,驱动程序直接与硬件设备打交道,那么上层的应用程序如何与驱动程序打交道呢?在这里插入图片描述

2.字符设备驱动的框架

\qquad 字符设备驱动的编写主要是open,close,read等函数的编写,在linux中,这些函数集成到file_operations结构体中,所以驱动的程序实现主要是对file_operations结构体的实现。

3.驱动模块的编写

\qquad <linux/init.h>包含module_init()module_exit()函数
\qquad 驱动模块编写的三要素:
\qquad 入口(加载)

module_init(入口函数名)
int __init xxx_func(void)
{
}

\qquad 出口(卸载)

module_exit(出口函数名)
void __exit xxx_func(void)

\qquad GPL协议说明。MODULE_LICENSE("GPL")
\qquad 常用的驱动模块的编写框架

#include<linux/init.h>
#include<linux/module.h>

int __init demo_init(void)
{
    printk("------%S--------%S------%D-------\n",__FILE__,__func__,__LINE__);
    return 0;
}
void  __exit demo_exit(void)
{
    
}
/*
模块的入口和出口
*/
module_init(demo_init);
module_exit(demo_exit);
MODULE_L ICENSE("GPL");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值