对于串口驱动的移植准备自己分析一下源代码的,但是发现自己好多地方都只知道一 些皮毛,不明白其中的道理,所以我上网搜的时候发现有好多人写了很多很好的文章了,下面我转载的这篇就非常不错,一个困恼我好久的问题是驱动代码中只是注 册了platform驱动,而platform设备注册在哪里?这个问题困恼我好久,源代码中一直没找到,下面文章就解决了这个问题。当然文章中详细了讲 述了很多细节的知...
第一次分析内核源代码,整个内核代码绕来绕去,人比较容易晕,而且深入追踪几次后不知道自己要干什么呢?自己看内核代码,看驱动,上网搜资料也有好一段时间了,大概总结一下自己的一些心得,很简单的,不是写驱动的心得,而是怎么去查看,最近看UART终端设备驱动,就以这个为例吧。
第一,弄清楚主要结构框架
这人是大概弄清楚主要框架,流程,一般linux内核驱动都是封装,分层,抽象,继承的,所以要弄个大概,知...
struct class *tty_class; struct device *tty_register_device(struct tty_driver *driver, unsigned index, struct device *device) { char name[64]; dev_t dev = MKDEV(driver->major, driver->minor_start) + index; if (index >= driver->num) { printk(KERN_ERR "Attempt to register invalid tty line number " " (%d).\n", index); return ERR_PTR(-EINVAL); } if (driver->type == TTY_DRI...
本帖最后由 amarant 于 2011-03-23 21:15 编辑
UART是一個簡單又常用的介面,也是Embedded System最常用來與其他裝置作溝通的介面。舉凡GPS、RFID、Modem、Barcode reader、遠端通訊等等。都可利用UART作為傳輸介面。本文簡單介紹在Embedded Linux系統下如何開啟UART作通訊。
基本UART操作
底下我們直接以程式碼範例來說明Linux UART的操作
接收操作[code]
/* rs232_rx.c */
#include
一:前言 接着前面的终端控制台分析,接下来分析serial的驱动.在linux中,serial也对应着终端,通常被称为串口终端.在shell上,我们看到的/dev/ttyS*就是串口终端所对应的设备节点. 在分析具体的serial驱动之前.有必要先分析uart驱动架构.uart是Universal Asynchronous Receiver and Transmitter的缩写.翻译成中文即为”通用异步收发器”.它是串口设备驱动的封装层. 二:uart驱动架构概貌 如下图所示: 上图中红色部份标识即为uart...
一:前言 接着前面的终端控制台分析,接下来分析serial的驱动.在linux中,serial也对应着终端,通常被称为串口终端.在shell上,我们看到的/dev/ttyS*就是串口终端所对应的设备节点. 在分析具体的serial驱动之前.有必要先分析uart驱动架构.uart是Universal Asynchronous Receiver and Transmitter的缩写.翻译成中文即为”通用异步收发器”.它是串口设备驱动的封装层. 二:uart驱动架构概貌 如下图所示: 上图中红色部份标识即为uart...
一:前言 接着前面的终端控制台分析,接下来分析serial的驱动.在linux中,serial也对应着终端,通常被称为串口终端.在shell上,我们看到的/dev/ttyS*就是串口终端所对应的设备节点. 在分析具体的serial驱动之前.有必要先分析uart驱动架构.uart是Universal Asynchronous Receiver and Transmitter的缩写.翻译成中文即为”通用异步收发器”.它是串口设备驱动的封装层. 二:uart驱动架构概貌 如下图所示: 上图中红色部份标识即为uart...
最近要搞这个驱动,但是去国腾官网上查看相关资料,就只有单片机的程序,还是GPIO模拟的SPI,我现在要在Linux下开发这个芯片的驱动,遇到很多问题,不知道有那位也在做这个或者做过这个的Linux驱动,Linux下的SPI通信已经调通了,但是Linux设备驱动怎样设置这四个串口,才能使串口工作呢,目前没头绪,我知道Linux驱动要去调用uart的驱动接口来注册,添加串口驱动,不知道那位现在正在搞这个,或者坐过这个芯片的驱动,网上看到了...
一、对于串口驱动linux系统中UART驱动属于终端设备驱动,应该说是实现串口驱动和终端驱动来实现串口终端设备的驱动。要了解串口终端的驱动 在linux系统的结构就先要了解终端设备驱动在linux系统中的结构体系,一方面自己了解的不够,另一发面关于终端设备的体系结构网上有很多很好很详 细的资料参考,这里我主要是鉴于终端设备体系的复杂性,我大概总结一下自己了解到的一些方面和一个整体的框架。
二、终端设备的结构