x6818
tyrocjl
这个人很懒,什么都没有留下哦
展开
-
linux驱动开发LDD(五)——字符设备驱动编程、GPIO库函数、综合运用goto语句、ioctl
11原创 2020-02-14 18:56:19 · 505 阅读 · 0 评论 -
linux驱动开发LDD(四)——字符设备驱动编程框架
(一)概念 字符设备 Linux内核中将设备按照硬件操作特性分为三类: 1)字符设备 :读写时以字节为单位 读写顺序固定 例如 键盘 鼠标 触摸屏 … 2)块设备: 读写时以扇区(多字节)为单位 读写顺序不固定 例如 硬盘 flash … 3)网络设备: 读写时以帧(多字节)为单位 读写顺序固定 在linux系统中实现一个字符设备硬件驱动:例如 键盘,实则就是在内核中实例化一个...原创 2020-01-18 16:18:31 · 314 阅读 · 0 评论 -
linux驱动开发LDD(三)——系统调用和内核、为内核增加一个系统调用
(一)系统调用 定义 系统调用由操作系统实现提供的应用编程接口(Application Programming Interface,API),是应用程序同系统之间的接口,实则,系统调用是软件上由用户态进入内核态的唯一方式,保证用户用户空间以安全的访问内核。 内核为什么要提供系统调用呢? 系统调用的实现方式:软中断 用户程序 首先将系统调用号填充到某个寄存器 执行软中断指令 该指令导致处理器收到...原创 2020-01-18 13:39:36 · 360 阅读 · 0 评论 -
linux驱动开发LDD(二)——符号导出和模块参数
(一)导出符号 它是用于解决模块之间的相互函数调用问题 export.c #include <linux/init.h> #include <linux/module.h> int my_add(int x, int y) { printk("<1>" "enter %s\n", __func__); return x+y; ...原创 2020-01-15 21:29:42 · 446 阅读 · 0 评论 -
linux驱动开发LDD(一)——第一个内核模块
环境: 编译好的内核源码/home/cjl/driver/kernel x6818开发板,使用上边的内核 网络根文件系统 /home/cjl/driver/rootfs 编写hello.c, 详情见注释 //以下两个头文件是内核模块编程时必须要加的,位于内核源码中 #include <linux/init.h> #include <linux/module.h> //...原创 2020-01-15 09:23:50 · 376 阅读 · 0 评论