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

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

相关推荐
sukalot2 天前
window显示驱动开发—在混合系统中使用跨适配器资源
数据库·驱动开发·音视频
花小璇学linux3 天前
imx6ull-驱动开发篇24——Linux 中断API函数
linux·驱动开发·嵌入式软件
花小璇学linux3 天前
imx6ull-驱动开发篇22——Linux 时间管理和内核定时器
linux·运维·驱动开发
小狗爱吃黄桃罐头3 天前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
sukalot5 天前
window显示驱动开发—验证混合系统配置
驱动开发
stbomei6 天前
当 GitHub 宕机时,我们如何协作?
驱动开发·github
努力自学的小夏7 天前
RK3568 Linux驱动学习——新字符设备驱动
linux·arm开发·驱动开发·笔记·学习
sukalot7 天前
window显示驱动开发—多平面覆盖 VidPN 呈现
驱动开发
花小璇学linux8 天前
imx6ull-驱动开发篇19——linux信号量实验
linux·驱动开发·嵌入式软件
驱动探索者10 天前
瑞芯微 RK3588 平台驱动开发 学习计划
驱动开发·学习