流水恋歌
这个作者很懒,什么都没留下…
展开
-
Linux下的串口总线驱动(二)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 四.TTY层内核代码TTY驱动程序有三种:控制台、串口和pty。在此我们主要分析Mini2440串口驱动。我们现在跟踪uart_register_driver和uart_add_one_port发现,他们的原函数定义在TTY层驱动serial_core.o中。int uart_reg原创 2012-10-26 09:21:27 · 3018 阅读 · 0 评论 -
Linux下的Watchdog驱动
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 对于看门狗驱动,在我们内核中把这些代码放在/driver/watchdog文件夹下面,但是watchdog并没有子系统,每个驱动都是独立的,需要我们根据自己的平台去编写看门狗驱动,比如mini2440看门狗驱动代码就是/driver/watchdog/S3c2410_wdt.c,这个代码比较简原创 2013-01-10 09:08:24 · 4079 阅读 · 0 评论 -
Linux下的串口总线驱动(三)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 五.线路规程内核代码底层的物理驱动程序和tty驱动程序负责从硬件上收发数据,而线路规程则负责处理这些数据,并在用户空间和内核空间知觉传递数据。打开串行端口时系统默认的线路规程是N_TTY,它实现终端I/O处理。线路规程也实原创 2012-10-27 12:18:01 · 4068 阅读 · 0 评论 -
Linux下的SPI总线驱动(三)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清五.SPI测试代码对于SPI总线驱动,我们可以分为SPI控制设备驱动和SPI接口设备驱动。而作为驱动开发人员主要是像SPI移植的时候一样会添加SPI控制设备和SPI接口设备的私有数据,同时驱动开发人员还需要会开发SPI接口设备原创 2012-11-12 09:48:18 · 19814 阅读 · 5 评论 -
Linux下的I2C总线驱动
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 一.系统理论1. I2C驱动体系概述 Linux I2C驱动体系结构主要由3部分组成,即I2原创 2012-09-23 21:21:42 · 5665 阅读 · 2 评论 -
Linux下的PCI总线驱动
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 一.理论1. PCI总线的特点:(1)速度上快,时钟频率提高到33M,而且还为进一步把时钟频率提高到66MHZ、总线带宽提高到64位留下了余地。(2)对于地址的分配和设置,系统软件课自动设置,每块外设通过某种途径告原创 2012-09-29 10:58:46 · 29836 阅读 · 4 评论 -
Linux下的SPI总线驱动(二)
版权所有,转载请说明转自http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 四.SPI内核代码分析我们已经讲过SPI驱动的移植,SPI控制设备和SPI接口设备的注册,SPI控制设备驱动和SPI接口设备驱动的注册。在移植时候,我们配置的选项告诉我们有些文件已经编入内核,那些就是SPI驱动的比较重要的文件。原创 2012-11-10 09:24:54 · 5920 阅读 · 3 评论 -
Linux下的platform总线驱动(一)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清一.Platform设备驱动概念主要讲解平台设备驱动的模型和基本概念,同时因为驱动加载的方式有动态加载和静态加载两种方式,这里我们分别对动态加载和静态加载两种情况下,如何使用平台设备和驱动加以叙述。最后使用mini244原创 2012-12-01 09:22:43 · 5371 阅读 · 0 评论 -
Linux下的Backlight子系统(一)
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清一.Backlight背光子系统概述我们的LCD屏常常需要一个背光,调节LCD屏背光的亮度,这里所说的背光不是仅仅亮和不亮两种,而是根据用户的需求,背光亮度是可以任意调节。Linux内核中有一个backlight背光子系统,该系统就是为原创 2013-01-17 09:24:06 · 8364 阅读 · 1 评论 -
Linux下的网络设备驱动(一)
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 一.网络设备驱动基础1. 以太网基础理论以太网是局域网的一种,它使用载波监听多路访问及冲突检测技术(CSMA/CD),并以10M/S的速率运行在多种类型的电缆上,常用的网卡芯片有DM9000、DM9161、CS8原创 2013-01-20 10:05:05 · 6873 阅读 · 1 评论 -
Linux下的Backlight子系统(二)
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 三.Backlight核心驱动下面我们讲讲backlight子系统。背光子系统目录在/driver/video/backlight下,其中背光子系统核心代码是backlight.c先查看/driver/video/bac原创 2013-01-18 09:01:26 · 12475 阅读 · 1 评论 -
Linux下的LCD驱动(一)
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 原创作者:南京邮电大学 通信与信息系统专业 研二 魏清 一.LCD屏理论1.1 LCD屏基本概念我们知道,诸如PCI、I2C和USB等外围设备总线都来自于系统PC机的南桥,今天我们看到的视频控制器则来自于北桥。LCD主要由TN(扭转向列型)、STN(超扭转向列型)、DSTN(双层超原创 2012-12-18 09:12:32 · 15128 阅读 · 2 评论 -
I2C设备移植
转自http://blog.csdn.net/wtao616/article/details/6147740 前面转载了很多关于i2c的文章,做完一个项目了,也该自己写点i2c心得了,我这个可是纯应用角度的,想看原理的,去看转载的文章,人家写的好多了! 对于一个i2c设备来说,其设备文件是最简单也是最复杂的,说它简单是因为很设备厂商会提供linux下的代码,这样就简单了;但转载 2013-10-28 21:00:01 · 2128 阅读 · 1 评论 -
Linux下的RTC子系统
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 实时时钟的作用主要是为操作系统提供一个可靠的时间,并在断电下,RTC时钟也可以通过电池供电一直运行下去。实时时钟驱动也有一个子系统,叫做RTC子系统,其源代码目录是/driver/rtc/,在这个目录下有一个rtc核心代码区,主要是Rtc-dev.c、Rtc-sysfs.c和Rtc-proc.原创 2013-01-09 10:07:41 · 4719 阅读 · 0 评论 -
Linux下的LED子系统
版权所有,转载必须说明转自 http://my.csdn.net/weiqing1981127 最简单的led驱动就是从端口输出0或1来关闭或点亮灯。而我们这里讲的led子系统,主要是对led事件进行了分装和优化,这里我们主要讲的是可以实现跨平台的led驱动。不管你是使用三星的平台,还是Atmel的平台,你只要知道如何在你的BSP中添加平台数据,并且知道如何在应用程序中使用这个驱动原创 2013-01-08 09:18:49 · 11433 阅读 · 0 评论 -
Linux下的串口总线驱动(一)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127一.系统理论PC机南桥的LPC总线(Low Pin Count并行总线,代替以前的ISA总线)上挂接了一个超级I/O模块,而UART是这个超级模块芯片组的一部分,这个UART通过RS232线程转换与串行端口相连。与RS232不同,RS485并不是标准的PC接口,但在嵌入式领域,会为了可靠通信而使用原创 2012-10-25 10:54:43 · 5412 阅读 · 0 评论 -
Linux下的Input子系统(二)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 二.内核代码2.1输入子系统设备驱动层我们先从设备驱动层进行讲解首先设备驱动层调用input_allocate_device进行申请input_dev结构体,接着对该结构体进行赋值,然后调用input_register_device进行注册设备。同时我们在open函数里定义中断函数,中原创 2012-11-04 15:46:38 · 2729 阅读 · 0 评论 -
Linux下的Input子系统(三)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127三.测试代码至此为止,我们已经讲完了输入子系统的设备驱动层,核心层,事件处理层的关系和相关代码,现在,我们通过基于Mini2440的开发板,将输入子系统融入按键驱动,编写设备驱动程序,动态加载到内核,并且编写应用层程序,测试按键驱动。我们已经配置了mini2440的串口配置,然后根据mini原创 2012-11-05 09:00:47 · 3055 阅读 · 0 评论 -
Linux下的Input子系统(一)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 一.系统理论1.1 Input子系统概述Input子系统是对不同类型的输入设备进行统一处理的驱动程序。一个输入事件,如按键,是通过驱动层到系统核心层到事件处理层到用户空间的顺序到达用户空间并传给应用程序使用。Input子系统由驱动层、输入子系统核心层和事件处理层三部分组成。此子原创 2012-11-01 20:22:16 · 1718 阅读 · 0 评论 -
Linux下的USB总线驱动(三)
版权所有,转载请说明转自http://my.csdn.net/weiqing1981127 4.U盘驱动分析USB Mass Storage是一类USB存储设备,这些设备包括USB磁盘、USB硬盘、USB磁带机、USB光驱、U盘、记忆棒、智能卡和一些USB摄像头等,这类设备由USB协议支持。首先我想去看看/driver/usb/storage/MakefileE原创 2012-11-28 09:00:10 · 4248 阅读 · 0 评论 -
Linux下的USB总线驱动(二)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 2.USB鼠标驱动 usbmouse.c下面我们分析下USB鼠标驱动,鼠标输入HID类型,其数据传输采用中断URB,鼠标端点类型为IN。好了,我们先看看这个驱动的模块加载部分。static int __init usb_mouse_init(void){ int原创 2012-11-26 10:22:16 · 4050 阅读 · 2 评论 -
Linux下的platform总线驱动(二)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 三.平台设备驱动测试这里我们采用Mini2440开发板,编写基于平台设备的按键驱动,要求按键驱动触发方式为单边沿触发,同时要求添加设备属性项。因为这个驱动比较简单,我就不去细致分析了,如果对硬件不理解可以参考mini2440开发板数据手册,如果对软件不理解,可以参考上文平台设备的讲解。在原创 2012-12-02 09:47:56 · 2376 阅读 · 0 评论 -
Linux下的USB总线驱动(一)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 一.USB理论1. USB概念概述USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB) USB2.0版本速度480Mbps(高速USB)USB驱动由USB主机控制器驱动和USB设备驱动组成。USB主机控制器是用来控制USB设备原创 2012-11-23 11:06:59 · 7283 阅读 · 1 评论 -
Linux下的SPI总线驱动(一)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 一.SPI理论介绍SPI总线全名,串行外围设备接口,是一种串行的主从接口,集成于很多微控制器内部。和I2C使用2根线相比,SPI总线使用4根线:MOSI (SPI 总线主机输出/ 从机输入)、 MISO (SPI总线主机输入/从机输出)、SCLK(时钟信号,由主设备产生)、CS(从设备使能原创 2012-11-09 16:20:27 · 6099 阅读 · 0 评论 -
Linux下的触摸屏驱动
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 一.触摸屏理论概述对于触摸屏驱动,我们主要需要掌握触摸屏驱动代码和应用层测试代码。下面讲的是基于Mini2440的触摸屏驱动,现在的驱动我们都将设备和驱动分离,挂在平台设备总线上,让设备和驱动去匹配。而我们在linu2.6.32.2内核版本中的触摸屏驱动仍然没有将设备和驱动分离,这样就不存在匹原创 2012-12-17 09:04:54 · 18330 阅读 · 1 评论 -
Linux下的LCD驱动(二)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 3.3 LCD文件层帧缓冲设备作为一个字符设备,其文件操作函数就定义在文件层fbmem.c中static const struct file_operations fb_fops = { .owner = THIS_MODULE, .read =原创 2012-12-19 09:00:35 · 4301 阅读 · 0 评论 -
At91SAMXX系列设置GPIO口中断端口方法
转自:http://rico-studio.com/linux/at91-gpio-interrupt/Linux: 2.6.31Processor: AT91SAM9XEThere are two types of interrupts you can create for an AT91. An external interrupt or a GPIO interrupt. A转载 2012-12-19 22:11:42 · 3598 阅读 · 0 评论 -
Linux下的Keyboard子系统
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 最简单的按键驱动就是一个中断处理函数,当用户有按键,通过read函数向应用层上报按键信息。而我们这里讲的keyboard子系统,主要是对按键进行了分装和优化,这里我们主要讲的是可以实现跨平台的按键驱动。不管你是使用三星的平台,还是Atmel的平台,你只要知道如何在你的BSP中添加平台数据,并且原创 2013-01-05 09:52:03 · 5234 阅读 · 0 评论 -
Linux下的串口总线驱动(四)
版权所有,转载请说明转自 http://my.csdn.net/weiqing1981127 六.串口测试代码我们已经配置了mini2440的串口配置,然后根据mini2440开发板的硬件电路知道S3C2440本身总共有3个串口:UART0、1、2,其中UART0,1可组合为一个全功能的串口,在大部分的应用中,我们只用到3个简单的串口功能(本开发板提供的Linux和WinCE驱原创 2012-10-28 20:56:56 · 1841 阅读 · 6 评论