(1) 设备驱动的最基本框架

/* AUTHOR: Pinus

* Creat on : 2018-10-11

* KERNEL : linux-4.4.145

* BOARD : JZ2440(arm9 s3c2440)

* REFS : 韦东山视频教程第二期

《LINUX内核源码情景分析》

*/

设备驱动概述

       计算机最基本的三个物质基础就是CPU、内存以及设备,设备驱动顾名思义,就是用来操作设备的,向下操作具体硬件,向上给应用提供接口。Linux内核经过多年发展,自然已经形成了足够合理有效的结构体系,不能像我们写裸板程序时一样只追求功能的实现,还要遵循Linux的代码结构。

 

实验

目的:编译出可以安装和卸载的模块驱动,打印hello word

1. 包含头文件,写出入口和出口函数,添加必要协议和修饰

头文件 :直接找其他内核的驱动文件拷过来,缺少编译时再添加

定义入口和出口函数 :模块在安装时会执行的函数

添加协议和修饰:

module_init(first_drv_init); /* 告诉内核哪个使我们的入口出口函数 */
module_exit(first_drv_exit);

MODULE_LICENSE("GPL"); /* 遵循GPL开源软件协议 */

2. 编写出入口出口函数

int first_drv_init(void)

{

    printk(KERN_EMERG"first_drv insmod \n hello world");

    return 0;

}


void first_drv_exit(void)

{

    printk(KERN_EMERG"first_drv rmmod\n");

}

3. 编译驱动,将生成的.ko文件,拷贝到板子上

insmod first_drv.ko //挂载

    >打印出 first_drv insmod

            hello world

lsmod //查询当前挂载

    first_drv ... ... ...

rmmod first_drv //卸载

    >打印出 first_drv rmmod

这一篇只是个引子,相信这些基础大家都知道,只是本人强迫症,不从开始写就浑身难受。。。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值