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. 字符设备的注册和注销

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

相关推荐
木白CPP2 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
恒锐丰-罗生1 天前
小体积大驱动|LTK8833 双通道 H 桥电机驱动芯片,电池供电设备首选动力方案
驱动开发·嵌入式硬件·硬件工程
正点原子4 天前
【正点原子Linux连载】 第十章 pinctrl和gpio子系统实验 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
星马梦缘4 天前
“零一”智能硬件开发挑战赛 宣传稿
驱动开发·智能硬件·活动·培训·科协
小此方5 天前
Re:Linux系统篇(五十四)线程篇 · 七:互斥锁的底层实现原理:从硬件上下文、原子交换指令(Swap)到并发封装实战
linux·运维·驱动开发
芯片设计-曾工7 天前
当精准脉冲遇上清晰视界——CH2205E模块与YL1621的“黄金搭档“
驱动开发·stm32·单片机·51单片机·硬件工程
平凡的小蚂蚁8 天前
Exynos4412-POP-7inLCD裸机开发完整教程(STM32 库风格)
驱动开发·stm32·单片机·嵌入式硬件·嵌入式·硬件工程
小此方8 天前
Re:Linux系统篇(五十二)线程篇 · 五:直击 Linux 内核底层:TCB 与 LWP 一体两面全解析(附自定义线程封装)
linux·运维·驱动开发
胡八一9 天前
虚拟串口com0com安装教程
驱动开发·stm32·单片机
智者知已应修善业9 天前
【三位数字显示计时定时器设计-同步方式】2025-6-30
驱动开发·经验分享·笔记·硬件架构·硬件工程