linux驱动编写
文章平均质量分 94
NEWEVA__zzera22
有些早期简介,存在明显错误,不再纠正。自2024年开始,内容正确性有提升
展开
-
正点原子imx6ull-mini-Linux设备树下的LED驱动实验(4)
宏 NEWCHRLED_CNT 表示设备数量,在申请设备号或者向 Linux 内核添加字 符设备的时候需要设置设备数量,一般我们一个驱动一个设备,所以这个宏为 1。宏 NEWCHRLED_NAME 表示设备名字,本实验的设备名为“dtsled”,为了 方便管理,所有使用到设备名字的地方统一使用此宏,当驱动加载成功以后就生成 /dev/dtsled 这个设备文件。dtsled.c 中 包含了处理设备树的代码#define DTSLED_CNT 1 /* 设备号个数 */原创 2024-07-30 00:33:08 · 780 阅读 · 0 评论 -
正点原子imx6ull-mini-Linux驱动LED(新字符设备驱动)(3)
宏 NEWCHRLED_CNT 表示设备数量,在申请设备号或者向 Linux 内核添加字 符设备的时候需要设置设备数量,一般我们一个驱动一个设备,所以这个宏为 1。宏 NEWCHRLED_NAME 表示设备名字,本实验的设备名为“newchrdev”,为了 方便管理,所有使用到设备名字的地方统一使用此宏,当驱动加载成功以后就生成 /dev/newchrled 这个设备文件。#define NEWCHRLED_CNT 1 /* 设备号个数 */原创 2024-07-29 15:39:30 · 647 阅读 · 0 评论 -
正点原子imx6ull-mini的linux驱动之LED(2)
define LED_MAJOR 200 /* 主设备号 */#define LED_NAME "led" /* 设备名字 */#define LEDOFF 0 /* 关灯 */#define LEDON 1 /* 开灯 */原创 2024-07-28 20:42:28 · 657 阅读 · 0 评论 -
正点原子imx6ull-mini第一个字符驱动设备编写(1)
define CHRDEVBASE_MAJOR 200 /* 主设备号 */#define CHRDEVBASE_NAME "chrdevbase" /* 设备名 *//* 读缓冲区 *//* 写缓冲区 */"};数组 usrdata 是测试 APP 要向 chrdevbase 设备写入的数据。"};原创 2024-07-28 16:19:45 · 529 阅读 · 0 评论 -
正点原子imx6ull-mini-linux字符驱动模板(0)
file_operations 结构体就是设备的具体操作函数,我们定义了 file_operations结构体类型的变量test_fops,但是还没对其进行初始化,也就是初始化其中的open、 release、read 和 write 等具体的设备操作函数。一般字符设备的注册在驱动模块的入口函数 xxx_init 中进行,字符设备的注销在驱动模块 的出口函数 xxx_exit 中进行。字符设备注册一般放在入库函数内,且注册函数包含注册设备号,注册设备名,与一个file_operations 类型指针。原创 2024-07-27 23:32:03 · 665 阅读 · 0 评论