知秋一叶

这世界里的每一个人,每一个东西,包括高山大海,刀剑风云,其本质都是一串数字流。...

排序:
默认
按更新时间
按访问量

DS18B20 驱动编写

嵌入式开发平台:mini2440 DS18B20 所用GPIO:S3C2410_GPF(3) 一、DS18B20 时序分析         DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输,其工作时序包括:初始化时序、写时序、读时序。 1、初始化时序   ...

2016-03-24 18:38:47

阅读数:9394

评论数:0

Exynos4412 ADC 设备驱动开发

具体ADC硬件知识及裸机驱动请看: Exynos4412裸机开发 —— A/D转换器 1、原理图如下: 2、相关寄存器信息 ADC_BASE      0x126C0000 ADCCON        0x0000               1 ADCDLY          0x0008...

2016-03-17 20:35:56

阅读数:4609

评论数:1

Linux 设备驱动中的 I/O模型(二)—— 异步通知和异步I/O

阻塞和非阻塞访问、poll() 函数提供了较多地解决设备访问的机制,但是如果有了异步通知整套机制就更加完善了。       异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号...

2016-03-16 19:54:06

阅读数:1589

评论数:0

Linux 设备驱动中的 I/O模型(一)—— 阻塞和非阻塞I/O

在前面学习网络编程时,曾经学过I/O模型

2016-03-15 21:04:05

阅读数:3139

评论数:1

Linux 设备驱动的并发控制

Linux 设备驱动中必须要解决的一个问题是多个进程对共享的资源的并发访问,并发的访问会导致竞态,即使是经验丰富的驱动工程师也常常设计出包含并发问题bug 的驱动程序。 一、基础概念 1、Linux 并发相关基础概念 a -- 并发(concurrency)       并发指的是多个执行单元...

2016-03-15 19:26:31

阅读数:3585

评论数:2

Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用

关与设备树的概念,我们在Exynos4412 内核移植(六)—— 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用          Device Tree是一种描述硬件的数据结构,设备树源(Device Tree Source)文件(以.dts结尾)就是用来描述目标板硬件信...

2016-03-14 20:47:15

阅读数:15963

评论数:5

Linux 设备驱动开发 —— platform设备驱动应用实例解析

前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。         一、platform 驱动的工作过程         platform模型驱动编程,需要实现platform_device(设备)与p...

2016-03-14 19:27:40

阅读数:26355

评论数:23

Linux 设备驱动开发 —— platform 设备驱动

一、platform总线、设备与驱动         一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设等确不依附于此类总线。基于这...

2016-03-12 14:45:56

阅读数:6584

评论数:0

Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型

提到 sysfs 文件系统 ,必须先需要了解的是Linux设备模型,什么事Linux设备模型呢? 一、Linux 设备模型 1、设备模型概述      从2.6版本开始,Linux开发团队便为内核建立起一个统一的设备模型。在以前的内核中没有独立的数据结构用来让内核获得系统整体配合的信息。尽管缺乏这...

2016-03-12 12:19:28

阅读数:4204

评论数:0

Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统

一、什么是Linux设备文件系统       首先我们不看定义,定义总是太抽象很难理解,我们先看现象。当我们往开发板上移植了一个新的文件系统之后(假如各种设备驱动也移植好了),启动开发板,我们用串口工具进入开发板,查看系统/dev目录,往往里面没有或者就只有null、console等几个系统必须的...

2016-03-12 10:55:35

阅读数:6347

评论数:1

Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析

一、VFS 虚拟文件系统基础概念         Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ...

2016-03-11 23:39:49

阅读数:3565

评论数:1

Linux 字符设备驱动开发基础(五)—— ioremap() 函数解析

一、 ioremap() 函数基础概念        几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: a -- I/O 映射方式(I/O-mapped) ...

2016-03-11 23:26:18

阅读数:7723

评论数:0

Linux 字符设备驱动开发基础(四)—— ioctl() 函数解析

解析完 open、close、read、write 四个函数后,终于到我们的 ioctl() 函数了 一、 什么是ioctl          ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。...

2016-03-11 22:55:02

阅读数:5310

评论数:2

Linux 字符设备驱动开发基础(三)—— read()、write() 相关函数解析

我们在前面讲到了file_operations,其是一个函数指针的集合,用于存放我们定义的用于操作设备的函数的指针,如果我们不定义,它默认保留为NULL。其中有最重要的几个函数,分别是open()、read()、write()、ioctl() ,下面分别对其进行解析       下面先写一下打开和...

2016-03-11 22:16:23

阅读数:7748

评论数:3

Linux 字符设备驱动开发基础(二)—— 编写简单 PWM 设备驱动

编写驱动的第一步仍是看原理图:        可以看到,该蜂鸣器由 GPD0_0 来控制 ,查手册可知该I/O口由Time0 来控制,找到相应的寄存器: a -- I/O口寄存器及地址       GPD0CON  0x114000a0 b -- Time0 寄存器及地址       基地址为...

2016-03-11 21:25:37

阅读数:7509

评论数:3

Linux 字符设备驱动开发基础(一)—— 编写简单 LED 设备驱动

现在,我们来编写自己第一个字符设备驱动 —— 点亮LED。 硬件平台:Exynos4412(FS4412) 编写驱动分下面几步: a -- 查看原理图、数据手册,了解设备的操作方法; b -- 在内核中找到相近的驱动程序,以它为模板进行开发,有时候需要从零开始; c -- 实现驱动程序的初始化...

2016-03-10 22:48:11

阅读数:6615

评论数:9

Linux 字符设备驱动结构(四)—— file_operations 结构体知识解析

前面在 Linux 字符设备驱动开发基础 (三)—— 字符设备驱动结构(中) ,我们已经介绍了两种重要的数据结构 struct inode{...}与 struct file{...} ,下面来介绍另一个比较重要数据结构 struct _file_operations struct _file_...

2016-03-10 22:20:30

阅读数:6212

评论数:0

Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析

前面我们学习了字符设备结构体cdev Linux 字符设备驱动开发 (一)—— 字符设备驱动结构(上)  下面继续学习字符设备另外几个重要的数据结构。        先看下面这张图:

2016-03-10 20:58:48

阅读数:6860

评论数:0

Linux 字符设备驱动结构(二)—— 自动创建设备节点

上一篇我们介绍到创建设备文件的方法,利用cat /proc/devices查看申请到的设备名,设备号。 第一种是使用mknod手工创建:mknod filename type major minor 第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev...

2016-03-10 20:46:35

阅读数:7201

评论数:0

Linux 字符设备驱动结构(一)—— cdev 结构体、设备号相关知识解析

一、字符设备基础知识 1、设备驱动分类       linux系统将设备分为3类:字符设备、块设备、网络设备。使用驱动程序: 字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口...

2016-03-09 23:12:34

阅读数:14344

评论数:5

提示
确定要删除当前文章?
取消 删除
关闭
关闭