04 2016 档案
摘要:串口驱动程序学习 本文主要实现对串口驱动程序初始化的分析 一、串口驱动中的数据结构 尽管一个特定的UART设备驱动完全可以按照tty驱动的设计方法来设计,即定义tty_driver并实现tty_operations其中的成员函数,但是Linux已经在文件serial_core.c中实现了UART设备
阅读全文
摘要:tty驱动程序框架 一、TTY概念解析 在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备。 1.1串口终端(/dev/ttyS*) 串口终端是使用计算机串口连接的终端设备。Linux把每个串行端口都看作是一个字符设备。这些串行端口所对应的设备名称是 /
阅读全文
摘要:平台总线程序设计 一、平台总线概述 平台总线(Platform bus)是linux2.6内核加入的一种虚拟总线,其优势在于采用了总线的模型对设备与驱动进行了管理,这总线的模型对设备与驱动进行了管理,这样提高了程序的可移植性。 通过平台总线机制开发设备驱动的流程如图: 平台总线的结构:platfor
阅读全文
摘要:总线设备驱动模型学习 一、总线概述 随着技术的不断进步,系统的拓扑结构也越来越复杂,对热插拔,跨平台移植性的要求也越来越高,2.4内核已经难以满足这些需求。为适应这种形势的需要,从Linux 2.6内核开始提供了全新的设备模型。 总线:创建一条总线,跟按键一样,首先是描述总线结构,接着是注册总线,注
阅读全文
摘要:linux按键驱动程序 包含内容定时器延时去抖动,阻塞型设备驱动设计 一、定时器延时去抖 按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,开关不会马上稳定地接通或断开。因而在闭合及断开的瞬间总是伴有一连串的抖动的。按键去抖动的方法主要有两种,一种是硬件电路去抖动;另一种就
阅读全文
摘要:按键驱动程序 本文学习主要包含按键硬件的实现、中断分层管理、按键定时器去抖、阻塞性驱动程序设计。这里面需要使用到混杂设备驱动和中断处理程序的内容。 一、创建按键混杂设备驱动模型 二、按键硬件的实现 首先是按键的初始化,按键的初始化可以选择在open函数,和模块的初始化函数当中完成硬件的初始化。下面我
阅读全文
摘要:linux日志文件 在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决。 /var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/mes
阅读全文
摘要:linux中断处理程序 一、中断处理流程 在linux内核代码中进入entry-armv.S目录: linux统一的入口:__irq svc. 进入了统一的入口之后,程序跳到irq_handler标号(在同一个文件上面有说明): 而irq_handler实际上是调用上面的arch_irq_handl
阅读全文
摘要:混杂设备驱动模型 在Linux系统中,存在一类字符设备,它们拥有相同的主设备号(数字10),但次设备号不同,我们称这类设备为混杂设备(miscdevice)。所有的混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的混杂设备。 一、设备描述 Linux中使用struct miscdevic
阅读全文
摘要:驱动与硬件通信 驱动程序控制设备,主要是通过访问设备内的寄存器来达到控制目的,因此我们讨论如何访问硬件,就成了如何访问这些寄存器了. 一、地址映射 在Linux系统中,无论是内核程序还是应用程序,都只能使用虚拟地址,而芯片手册中给出的硬件寄存器地址或者RAM地址则是物理地址,无法直接使用,因此,我们
阅读全文
摘要:led驱动程序编写 本文主要包含三部分,led驱动程序led.c编写,编译驱动程序的makefile的编写,以及使用驱动程序的应用程序led_app的编写 一、led.c编写 1.1控制led命令的编写 >led.h 二、编译led.c的Makefile的编写 三、应用程序的编写 在完成以上步骤之后
阅读全文
摘要:字符设备控制 一、设备控制理论 1.1作用 大部分驱动程序除了需要提供读写设备的能力外,还需要具备控制设备的能力。比如: 改变波特率。 1.2设备控制-应用函数 在用户空间,使用ioctl系统调用来控制设备,原型如下: int ioctl(int fd,unsigned long cmd,...)
阅读全文
摘要:应用程序如何访问驱动 应用程序主要是通过系统调用来访问驱动程序图。 接下来我们以read.c应用程序来分析: 源码: 我们知道read.c是个系统调用函数,系统调用之前,他是在我们的应用程序当中。实现是在内核当中,但是read.c是怎么找到内核的实现代码的呢: 一、进入代码分析阶段 1.1使用静态编
阅读全文
摘要:linux内核打印数据到串口控制台问题 原文来源:http://i.cnblogs.com/EditPosts.aspx?opt=1 1、查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4 4 1 7 其中第一个“4”表示内核打印函数printk的打印级别,只有级别
阅读全文

浙公网安备 33010602011771号