当前位置: 首页 > ops >正文

Petalinux驱动开发

1. 驱动模块的加载和卸载

linux的驱动开发实际上是学习驱动的框架

linux驱动有两种运行的方式

  1. 将驱动编译进Linux的内核
  2. 将驱动编译为模块,在内核启动后使用insmod来加载驱动模块

模块有加载(module_init(xxx_init))和卸载(module_exit(xxx_exit))两种操作,
module_init 函数用来向 Linux 内核注册一个模块加载函数,参数xxx_init就是需要注册的具体函数, 当使用“insmod”命令加载驱动的时,xxx_init 这个函数就会被调用

module_exit()函数用来向 Linux 内 核注册一个模块卸载函数,参数 xxx_exit 就是需要注册的具体函数,当使用“rmmod”命令卸载具体驱动 的时候 xxx_exit 函数就会被调用。

驱动编译完后的拓展名是.ko,有两种命令可以加载驱动模块:insmod(不能够加载依赖) 和 modprobe(更加智能,能够加载依赖)

对于模块的卸载,推荐使用rmmod 命令

2. 字符设备的注册和注销

对于字符设备驱动而言,当驱动模块加载成功以后需要注册字符设备,同样,卸载驱动模 块 的 时 候 也需要注销掉字符设备

http://www.xdnf.cn/news/16389.html

相关文章:

  • 多智能体系统设计:协作、竞争与涌现行为
  • 零基础学习性能测试第六章:性能难点-Jmeter实现海量用户压测
  • 【奔跑吧!Linux 内核(第二版)】第5章:内核模块
  • 关于“PromptPilot” 之2 -目标系统:Prompt构造器
  • Linux c网络专栏第三章DPDK
  • Rust与Java DynamoDB、MySQL CRM、tokio-pg、SVM、Custors实战指南
  • UV: 下一代 Python 包管理工具
  • Unity 实时 CPU 使用率监控
  • 前缀和-560.和为k的子数组-力扣(LeetCode)
  • XFile 系统架构设计文档
  • iOS安全和逆向系列教程 第20篇:Objective-C运行时机制深度解析与Hook技术
  • 七、搭建springCloudAlibaba2021.1版本分布式微服务-skywalking9.0链路追踪
  • 前端基础班学习路线
  • GPGPU基本概念
  • PiscCode实现从图像到字符艺术
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现PCB上二维码检测识别(C#代码UI界面版)
  • 北大区块链技术与应用 笔记
  • 虚拟机ubuntu20.04共享安装文件夹
  • AI驱动的金融推理:Fin-R1模型如何重塑行业决策逻辑
  • docker搭建部署 onlyoffice 实现前端集成在线解析文档解决方案
  • elasticsearch 倒排索引原理详解
  • LeetCode 923.多重三数之和
  • 面试150 数字范围按位与
  • 第六章 JavaScript 互操(3)JS调用.NET
  • Ubuntu服务器安装与运维手册——操作纯享版
  • 算法竞赛阶段二-数据结构(37)数据结构动态链表list
  • CLAP文本-音频基础模型: LEARNING AUDIO CONCEPTS FROM NATURAL LANGUAGE SUPERVISION
  • 机器学习的算法有哪些?
  • Jmeter的元件使用介绍:(八)断言器详解
  • Android网络框架封装 ---> Retrofit + OkHttp + 协程 + LiveData + 断点续传 + 多线程下载 + 进度框交互