| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 嵌入式Linux-IMX6ULL-Linux字符设备驱动开发学习总结 -> 正文阅读 |
|
[系统运维]嵌入式Linux-IMX6ULL-Linux字符设备驱动开发学习总结 |
1.首先需要创建加载驱动模块函数主要用到 ????????module_init(xxx_init); //注册模块加载函数 ????????module_exit(xxx_exit); //注册模块卸载函数 那么就需要创建一个xxx_init函数、一个xxx_exit函数如下所示
其中加载驱动模块可以是用insmod xx.ko modprobe.ko 建议使用modprobe不会存在依赖问题,因为命令可以自动分析依赖,自动加载。而卸载模块可以是rmmod xx.ko modprobe -r xx.ko这里建议使用rmmod因为后一个有依赖卸载,本来只要卸载一个驱动,结果把依赖关系的驱动都卸载了就得不偿失了。 2.创建注册和注销函数 ????????static inline int register_chrdev(unsigned int major, const char *name,
????????注册号了后可以在 cat /proc/devices? 文件中看到对于的文件和设备号 3.实现设备具体的操作函数一般就是open、release、read、write
? ? ? ? release
? ? ? ? read
? ? ? ? write
? ? ? ? 最后添加到注册结构体中注册
4.最后添加license和作者信息,license必须要加的不然会编译报错,作者信息自由选择可加可不加
Linux 中每个设备都有一个设备号,设备号由主设备号和次设备号两部分组成,主设备号表示某一个具体的驱动,次设备号表示使用这个驱动的各个设备。主设备号0~4095 Linux推荐用动态分配设备号,这样方便管理。 以上就是字符设备驱动的开发模板了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 21:19:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |