开始:
1、要在自己的Linux源码中创建自己的模块文件。
在drivers下创建自己的文件名为myled。
然后创建myleds.c文件,编写源码

2、Makefile和Kconfig的设置

在myleds目录下添加Makefile和Kconfig这两个文件

Kconfi:

还有Makefile:

  obj-$(CONFIG_TEST_USER) += myleds.o

需要在上层目录的drivers目录下修改Makefile和Kconfig
在Makefile中添加:obj-$(CONFIG_TEST_SUPPORT) += myled/
在Kconfig中添加:source “drivers/myled/Kconfig”

3、编译内核模块:使用make modules命令

在Linux源码的第一级目录下 make menuconfig设置myled模块为编译模块禁止编译进内核。然后使用make modules
在myleds目录下会生成myleds.ko文件

4、开发板测试

将文件下载到开发板。
先使用mknod 文件目录 模块类型 主设备号 此设备号, 添加设备
mknod /dev/myled c 253 1 这个设备号是个前面的cdev_init()使用的设备号一致//这里为创建一个设备文件节点,让顶层的应用程序访问,可以使用ioctl发送命令,执行动作
使用insmod myleds.ko加载模块,lsmod myleds 查看模块,rmmod myleds卸载模块,modprode myleds是否加载

Linux基础驱动开发的更多相关文章

  1. 《Linux设备驱动开发具体解释(第3版)》进展同步更新

    本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...

  2. Hasen的linux设备驱动开发学习之旅--时钟

    /** * Author:hasen * 參考 :<linux设备驱动开发具体解释> * 简单介绍:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:时钟 * Date ...

  3. 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接

    <Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub   spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...

  4. Linux 设备驱动开发 —— platform设备驱动应用实例解析

    前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习. 一.platform 驱动的工作过程 platfor ...

  5. Linux设备驱动开发环境的搭建(转)

    经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...

  6. Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/font ...

  7. Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

    1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux  opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2 ...

  8. Linux设备驱动开发详解

    Linux设备驱动开发详解 http://download.csdn.net/detail/wuyouzi067/9581380

  9. 转:Linux设备驱动开发(1):内核基础概念

    一.linux设备驱动的作用 内核:用于管理软硬件资源,并提供运行环境.如分配4G虚拟空间等. linux设备驱动:是连接硬件和内核之间的桥梁. linux系统按个人理解可按下划分: 应用层:包括PO ...

  10. (转)FS_S5PC100平台上Linux Camera驱动开发详解(一) .

     平台linuxstructlinux内核videocam 说明:        理解摄像头驱动需要四个前提:        1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 ...

随机推荐

  1. Windows10 Vmware安装Centos虚拟机

    准备工作 安装Vmware软件 下载地址:https://www.vmware.com/cn/products/workstation-pro.html 下载Centos7 镜像 下载地址:https ...

  2. alpine镜像安装sshd以进行远程debug

    FROM alpine:latest RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories ...

  3. NC16644【字符串的展开】

    正确代码: #include <iostream>#include <algorithm>using namespace std;bool IsSame(char a, cha ...

  4. centos6.5升级python3.6并安装boto3模块

    1.先升级openssl yum安装各种依赖,yum install gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel tar zxvf ...

  5. db2iupgrade / db2ckupgrade failure due to SQL0551N

    db2iupgrade / db2ckupgrade failure due to SQL0551N Troubleshooting Problem db2iupgrade or db2ckupgra ...

  6. 封装ESXi网卡驱动

    只能使用 Windows 7 系统 只能使用 Windows 7 系统 只能使用 Windows 7 系统 OK,留下的继续吧,

  7. 杭电oj 青年歌手大奖赛_评委会打分

    Problem Description 青年歌手大奖赛中,评委会给参赛选手打分.选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分.   Input 输入数据有多组,每 ...

  8. React工程化实践之UI组件库

    分享日期: 2022-11-08 分享内容: 组件不是 React 特有的概念,但是 React 将组件化的思想发扬光大,可谓用到了极致.良好的组件设计会是良好的应用开发基础,这一讲就让我们谈一谈Re ...

  9. redis分布式锁实现,setnx,nodejs版本

    const redis = require('ioredis'); const clienId = Math.random() * 100; //模拟客户端Id const lockKey = 'te ...

  10. SpringBoot写第一个接口

    服务可以理解为一个接口,一个controller,一个做业务请求的 新建一个HelloWorldController import org.springframework.boot.SpringApp ...