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

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

相关推荐
IT 行者1 天前
GitHub Spec Kit 实战(六):/speckit.implement 怎么用、怎么审、怎么发现 spec 阶段的遗漏——五部曲收官
java·驱动开发·github·ai编程·claude
HEU_firejef1 天前
TDD——测试驱动开发
驱动开发·tdd
暮云星影1 天前
全志开发环境搭建及编译构建
linux·arm开发·驱动开发
编程圈子1 天前
电机驱动开发学习3. 驱动原理与相关电路
驱动开发·学习
编程圈子2 天前
电机驱动开发学习2. 直流无刷电机工作原理
驱动开发·学习
智者知已应修善业2 天前
【用74LS151的实现(16序列信号发生器)】2024-6-1
驱动开发·经验分享·笔记·硬件架构·硬件工程
道一云黑板报2 天前
告别提示词工程:为什么“循环工程”才是 AI 编程的未来?
人工智能·驱动开发·软件工程·ai编程
天南散修3 天前
MT7916 BA流程
网络·驱动开发·wifi·802.11
Soari3 天前
EtherCAT Master Stack —— 面向工业实时控制的开源 EtherCAT 主站协议栈
驱动开发
天南散修3 天前
MT7916驱动中802.11转换为802.3
linux·网络·驱动开发·wifi·802.11