- 博客(13)
- 资源 (7)
- 收藏
- 关注
原创 (十一) 中断驱动开发
1.中断基础知识 中断对于学习过微机以及单片机并不陌生,下面就中断的基础知识做一下简单介绍。 中断是指CPU 在执行程序的过程中,出现突发事件去处理,CPU 需要停止当前程序的执行,转去处理突发事件,处理完成之后再返回原程序部分。(相关信息翻阅微机原理等)2.中断编程流程linux中的中断在使用前,都需要申请。中断申请函数是“request_irq”,在linux目录中,使用命令”vim i
2016-10-03 20:26:28
318
原创 (十) 编写LED驱动程序
结合前面介绍的linux字符驱动编写的流程(申请设备号-设备注册-生成设备节点),开始对LED驱动进行编写。编写驱动的流程:查看原理图以及数据手册-内核寻找相似驱动进行开发,有时从零开始-字符驱动编写以及实现功能,方便调用-编译内核或者insmod加载-测试驱动。1.LED原理图 查看原理图以及数据手册(如下图),从图中可以看出KP_COL0和VDD50_EN控制Led的点亮。
2016-09-29 21:17:32
600
原创 (九) 字符设备节点生成
1.创建设备类 字符类设备设备节点的生成和杂项设备节点生成相类似,不过相比较杂项设备设备,字符设备需要额外添加一个设备类。 linux创建设备类需要通过class类进行创建。linux中的class是设备类,是一个抽象的概念,并没有对应的实体。它提供给用户接口相似的一类设备集合。常见的有输入子系统input、usb、串口tty、块设备block等。在linux根目录中,使用命令”vim in
2016-09-28 16:59:52
320
原创 (八) 字符类设备注册
1.分配内存 对于杂项设备注册,只需要在平台文件添加一个结构体和一个指针,直接调用即可。字符设备和杂项设备的唯一区别就是多了这一步注册设备。 字符设备注册首先需要分配内存空间,杂项设备没有分配内存空间的过程,因为系统自带的代码已经给杂项设备分配好了。分配内存空间的函数kmalloc,在linux根目录中使用命令”vim include/linux/slab.h”:static inline
2016-09-27 18:53:01
289
原创 (七) 字符设备号申请
1.模块传参 在应用程序中,可以通过main函数向其中传参数,实际上对于加载模块的时候还可以通过insmod命令传参数。在linux根目录,使用命令”vim include/linux/moduleparam.h” 中包含了向模块传参数的函数,这个功能是集成的,在任何linux系统中都可以使用。参数传递有两个函数,分别是函数module_param和module_param_array。函数mod
2016-09-26 21:24:34
262
原创 (六) 生成设备节点
1.杂项设备节点 一部分驱动需要和上层应用进行通信,一般需要生成设备节点,上层应用通过一套标准的借口函数调用设备节点就可以控制底层以及底层通信。下面就简单易用的杂项设备节点生成做一下简单介绍: 在开发板的终端输出cat /proc/misc 可以查看相应的杂项设备号。主设备号只有256个,远远不能满足实际的需求,所以引入了咋设备号,对于杂项设备主设备号为10,在linux系统中它都是固定的。
2016-09-25 13:13:31
533
原创 (五) 驱动注册
1. platform_driver_registere函数 将驱动注册到平台需要用到结构体”platform_driver_register”,下面就该函数做一下简单介绍: “platform_driver_register”和“platform_driver_unregister”用户注册和卸载驱动。在linux目录中,使用命令”vim include/linux/platform _de
2016-09-25 10:31:11
277
原创 (四) 注册设备
1.设备节点 linux系统中一切皆文件,上层应用使用设备节点访问对应的设备。设备节点一般是放在“/dev”目录下,在开发板下输入命令“ls /dev”。 上层应用有一套标准的接口文件和函数用来和底层通信。Linux 将所有对设备的操作全部都抽象为对文件的操作,常用的文件操作函数有open、close、write、read、write 等。 ### 1.设备注册 注册设备的结构体p
2016-09-25 09:03:52
276
原创 (三) 总线_设备_驱动注册
1.总线-设备-驱动注册流程详解 在linux2.6之后,linux设备驱动分为三个实体总线、设备、驱动,平台总线将设备和驱动匹配。在系统注册任一个驱动的时候,都会寻找相应的设备;当系统注册设备的时候,系统也会寻找对应的驱动进行匹配。 在linux系统中,任何一个linux设备和linux驱动都是需要挂载到总线中。例如spi总线、media总线等等。若是设备本身是一个总线设备,那
2016-09-24 15:18:36
484
原创 (一) linux内核基础
1.linux体系结构&emsp在linux的学习中,我们首先从整体到局部的方法进行展开,linux的整体学习中,首先对linux需要有一个整体的概念,以达到更好的去把握linux.通常我们把linux体系结构分为用户空间(User Space)和内核空间(Kernel Space)(见下图)。 &emsp**内核空间以包含系统调用接口、内核、平台依赖代码以及硬件平台。用户空间**主要以调
2016-09-10 19:18:48
296
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人