linux UART串口驱动开发文档

摘要: 内容简介: 介绍了Linux下的串口驱动的设计层次及接口, 并指出串口与TTY终端之间的关联层次(串口可作TTY终端使用), 以及Linux下的中断处理机制/中断共享机制, 还有串口缓冲机制当中涉及的软中断机制; 其中有关w83697/ 内容简介: 介绍了Linux下的串口驱动的设计层次及接口, 并指出串口与TTY终端之间的关联层次(串口可作TTY终端使用), 以及Linux下的中断处理机制/中... 阅读全文
posted @ 2012-05-19 10:21 alfredzzj 阅读(956) 评论(0) 推荐(0) 编辑

Termios

摘要: 百科名片 termios的实现中,有大量的参数设置,还有伪终端的说法。原因就在于当初UNIX发明时,(上世纪七十~八十年代),在美国,西欧大学里面用的都是大型机加客户终端,学生们用的是串口方式与大型机进行交流,通讯。所以,当时很多软件的设计都是针对这种情况而开发的。包括termios,tty,X window等等。因为要在串口上传输,所以不得不定义很多按键的组合符号和很多传输模式。 目录 TE... 阅读全文
posted @ 2012-05-19 09:56 alfredzzj 阅读(270) 评论(0) 推荐(0) 编辑

readb(), readw(), readl(),writeb(), writew(), writel() 宏函数

摘要: readb(), readw(), readl()函数 功能: 从内存映射的 I/O 空间读取数据。 readb 从 I/O 读取 8 位数据 ( 1 字节 ); readw 从 I/O 读取 16 位数据 ( 2 字节 ); readl 从 I/O 读取 32 位数据 ( 4 字节 )。 原型: #include <asm/io.h> unsigned... 阅读全文
posted @ 2012-05-19 09:35 alfredzzj 阅读(708) 评论(0) 推荐(0) 编辑

Android Audio代码分析=Audio Strategy

摘要: 在看示例代码 testPlaybackHeadPositionIncrease 的时候,我们对 play 函数进行了研究。 不过,当时对 Android 中声音竞争策略相关的内容,并没有详细分析。 今天就以 AudioTrack 的播放为引子,来仔细看看 Anroid 中各种声音是以什么样的策略来竞争的。 从 Java 侧类 AudioTrack 的 play 函数到函数 AudioF... 阅读全文
posted @ 2012-04-04 17:33 alfredzzj 阅读(1886) 评论(0) 推荐(0) 编辑

I2S总线数据通信

摘要: 引言 I2S(InterIC Sound Bus)是飞利浦公司针对数字音频设备之间的音频数据传输而制定的一种总线标准,采用沿独立的导线传输时钟与数据信号的设计,通过分离数据和时钟信号,避免了时差诱发的失真。I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系统设计中,并不是所有的MCU都支持I2S总线格式,再加上I2S还没有统一的接口标准,不同的... 阅读全文
posted @ 2012-04-03 23:16 alfredzzj 阅读(1822) 评论(1) 推荐(1) 编辑

request_irq()——注册中断服务

摘要: 在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include <linux/sched.h> ,2.6 内核中需要包含的头文件则是 #include <linux/interrupt.h> 。函数原型如下: 2.4 内核 int request_irq (unsigned int irq, voi... 阅读全文
posted @ 2012-04-03 23:15 alfredzzj 阅读(11131) 评论(1) 推荐(1) 编辑

inux中的设备节点(/dev/*)

摘要: 设备管理是linux中比较基础的东西,但是由于Linux智能程度的越来越高,Udev的使用越来越广泛,使得越来越多的Linux新用户对 /dev 目录下的东西变得不再熟悉。有时候遇见问题就会变得抓狂 本文是我在写作《DIY 一个基于LFS的实用 Mini-LAPP 服务器》过程中整理的资料,拿出来与大家共享 Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取)、块设备(有缓冲且可... 阅读全文
posted @ 2012-04-03 23:14 alfredzzj 阅读(1214) 评论(0) 推荐(0) 编辑

linux内核学习(15)内核编程基本功之内核同步与自旋锁spinlock_t

摘要: Pro-I、内核同步与自旋锁: 1、为什么要使用内核同步? 同步使得共享数据结构(相对应的代码块—临界区)可以有节奏的被读/写。主要是由于内核控制路径的改变,而且它的改变是随机的。那么我们所要做的就是要保证在任意时刻只有一个内核控制路径处于临界区。如果在单CPU的情况下,只需禁止内核抢占即可实现不会发生内核控制路线的改变,如果在多CPU的情况下,就需要用到自旋锁了,它可以保证多个CPU的运行轨... 阅读全文
posted @ 2012-04-03 23:12 alfredzzj 阅读(834) 评论(0) 推荐(0) 编辑

Android arm linux kernel启动流程

摘要: 虽然这里的Arm Linux kernel前面加上了Android,但实际上还是和普遍Arm linux kernel启动的过程一样的,这里只是结合一下Android的Makefile,讲一下bootimage生成的一个过程。这篇文档主要描述bootimage的构造,以及kernel真正执行前的解压过程。 在了解这些之前我们首先需要了解几个名词,这些名词定义在/Documentation/arm... 阅读全文
posted @ 2012-04-03 23:05 alfredzzj 阅读(1142) 评论(0) 推荐(1) 编辑

Android Camera系统

摘要: 1. Overview 1.1 物理架构 1.2 Android架构 2. CameraService 3. HAL 4. Overlay 5. Video for Linux 1. Overview 本文以Freescale IMX为例剖析camera摄像头的系统架构。 1.1 物理架构 硬件方面,camera系统分为主控制器和摄像头设备,功能上主要有取景,拍照和摄影。 ... 阅读全文
posted @ 2012-04-03 23:01 alfredzzj 阅读(1699) 评论(0) 推荐(0) 编辑