Linux基础驱动开发
开始:
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基础驱动开发的更多相关文章
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...
- Hasen的linux设备驱动开发学习之旅--时钟
/** * Author:hasen * 參考 :<linux设备驱动开发具体解释> * 简单介绍:android小菜鸟的linux * 设备驱动开发学习之旅 * 主题:时钟 * Date ...
- 《Linux设备驱动开发具体解释(第3版)》(即《Linux设备驱动开发具体解释:基于最新的Linux 4.0内核》)网购链接
<Linux设备驱动开发具体解释:基于最新的Linux 4.0内核> china-pub spm=a1z10.3-b.w4011-10017777404.30.kvceXB&i ...
- Linux 设备驱动开发 —— platform设备驱动应用实例解析
前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习. 一.platform 驱动的工作过程 platfor ...
- Linux设备驱动开发环境的搭建(转)
经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...
- Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建
1. openSUSE是一款优秀的linux. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRjYXN0Y3Bw/font/5a6L5L2T/font ...
- Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建
1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2 ...
- Linux设备驱动开发详解
Linux设备驱动开发详解 http://download.csdn.net/detail/wuyouzi067/9581380
- 转:Linux设备驱动开发(1):内核基础概念
一.linux设备驱动的作用 内核:用于管理软硬件资源,并提供运行环境.如分配4G虚拟空间等. linux设备驱动:是连接硬件和内核之间的桥梁. linux系统按个人理解可按下划分: 应用层:包括PO ...
- (转)FS_S5PC100平台上Linux Camera驱动开发详解(一) .
平台linuxstructlinux内核videocam 说明: 理解摄像头驱动需要四个前提: 1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 ...
随机推荐
- VS Code 快速下载
最近在官网下载Visual Studio Code时,下载速度特别慢,经过搜索后发现,将下载地址前部分更换为国内地址后,下载速度飞快. 具体步骤如下: VSCodeSetup-x64-1.72.0 官 ...
- Oracle数据库字符集与国家字符集
一般情况下数据库字符集UTF-8:国家字符集:UTF-16. 服务器端:(oracle服务器端字符集)数据库字符集在创建数据库时指定,在创建后通常不能更改.在创建数据库时,可以指定字符集(CHAR ...
- vue-vite-ts 新版
Vue 后台管理系统 一.系统创建 1.1.环境检测 $ node -v v18.10.0 $ npm -v 9.1.2 ## 若没有该命令 需要用 npm install -g pnpm 安装 $ ...
- No.1.2
列表标签 无序列表 标签名 说明 ul 表示无序列表的整体,用于包裹li标签 li 表示无序列表的每一项,用于包含每一行的内容 有序列表 标签名 说明 ol 表示有序列表的整体,用于包裹li标签 li ...
- 解决npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)报错问题
解决方法:在终端中运行命令:npm cache clear --force 然后重新运行 npm i 命令,再次安装安装完成,没有出现报错npm run serve 运行项目,项目可以正常启动了. 安 ...
- vue监听video标签播放暂停,中间按钮替换 controls控制台
先搞个原生的video标签进来 <video ref="movie" class="video" src="static/movie.mp4&q ...
- 配置RMAN(缩减版)
配置备份的默认类型:备份集或副本 要配置默认备份类型: 启动 RMAN 并连接到目标数据库和恢复目录(如果使用). 将备份集或映像副本配置为默认备份类型. 以下示例配置磁盘备份到副本和备份集的备份类型 ...
- holiday11
holiday11--linux basis From today I will write my note in English ,hope I will stick to it. user and ...
- web执行sql----vue mybatis
java @ResponseBody @RequestMapping(value = "/sqlMap", method = RequestMethod.POST) public ...
- 基于python-nmap的扫描代码
本次代码只利于人员进行分析,没有啥用,小学期作业,被迫工作. 1 import tkinter 2 from tkinter import * 3 import time 4 import nmap ...