![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
fl2440驱动
C_Aya
多做事,少说废话
展开
-
fl2440——驱动学习-LED测试程序
前面已经记录学习了LED驱动程序的代码分析,并且成功将驱动模块加载到了开发板,现在就可以进行LED应用程序的测试啦! 测试代码如下:/*-------LED流水灯测试程序-------*/#include <stdio.h>#include <stdarg.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#i原创 2017-03-28 19:21:33 · 669 阅读 · 1 评论 -
驱动学习回顾——Linux下bus设备模型
关于Linux的驱动学习有三个点是应该掌握的,即:总线,驱动,设备。不管是一些物理总线(如:I2C,SPI等)的抽象,还是为了增加设备“容量”而定义的虚拟总线(plat-from),都是围绕着这三个进行。即:一个符合Linux设备驱动模型的device和device_dvrier都挂在一个bus上,由bus来进行两者匹配,进行双向绑定。下面简单地给出自己简单的学习过程。一、总线总线这个概念在内核中在原创 2017-08-21 13:14:06 · 622 阅读 · 0 评论 -
驱动学习回顾——platform总线驱动-结合LED实例分析
前一篇文章总结了Linux下的bus设备模型,实际上,我们在编程过程中,并不需要自己来创建总线,Linux已经为我们实现了诸如platform总线、USB总线、I2C总线等等。 而接下来要学习总结的platform总线有点“特别”,与USB、I2C、SPI等物理总线不同,它是一条虚拟总线。像USB设备、I2C设备都会有自己对应类型的总线进行挂载,从而与CPU通信。但是在嵌入式系统中,并不是所有的设原创 2017-08-21 20:08:30 · 1467 阅读 · 0 评论 -
fl2440——驱动学习-Platform_Button驱动代码分析
#include "s3c_driver.h"#define DRV_AUTHOR "Tang bin"#define DRV_DESC "S3C24XX button driver"/* Driver version*/#define DRV_MAJOR_VER原创 2017-04-04 15:29:04 · 618 阅读 · 0 评论 -
USB 3G上网卡讲解之一
转载了一个比较详细的关于USB 3G上网卡的讲解,原文地址: http://blog.chinaunix.net/uid-20786208-id-3157021.htmlUSB 3G卡热插拔那些事1——原理框架这里我们先讲讲USB热插拔事件的处理工作。—–Khubd守护进程。 -Khubd守护进程它是一个守护进程,来检查usb port的事件通知HCD和usb core,然后做相应的处理。 驱转载 2017-09-06 14:09:49 · 1489 阅读 · 0 评论 -
USB 3G上网卡讲解之二
USB 3G卡热插拔那些事3——usb serial驱动上一节我们已经把3G识别出来并且可以工作了,具体3G卡拨号这一块我们稍后会讲到,这里先提下,首先就是pppd拨号程序,可以网上下载最新版源码自己编译安装,我是利用evdo拨号(本人是用的SIM5360E,WCDMA/GSM,即联通2G/3G),当然还有其他方式。这里是用户空间如何建立ppp连接,在内核层就是ppp协议以及tty模块,在往下就是w转载 2017-09-06 14:29:29 · 666 阅读 · 0 评论 -
fl2440——驱动学习-ADC驱动
硬件描述: S3c2440有一个10-bit的CMOS ADC 模数转换器,支持8个模拟通道输入,10位的分辨率,最高速度可达500KSPS(500 千次/每秒)。 fl2440上的原理图: 从图中可知:模拟ADC,包含了2部分功能,一部分是触屏功能,另一部分就是普通ADC功能,分别可以产生INT_TC和INT_ADC 两个中断。8个AIN模拟输入(A[3:0],YM,YP,XM,XP原创 2017-04-09 20:02:56 · 477 阅读 · 0 评论 -
驱动学习回顾——按键(Button)驱动的理解和总结
当时在学习按键驱动时,便觉得其中有几个点是比较难理解的,在整体上自己感到并没有很好地掌握。现在经过了一段时间地学习,再将按键驱动里的疑难点加以理解之后,总结记录一下。 关于驱动代码之前已经给出,点击:这里,但只是关于代码语句的注释,下面将从功能块上着重分析这个驱动。一、中断也许现在提起中断,都可以联想到这个图: 中断,本质上就是一种特殊的信号,由某个设备发个CPU,CPU接到这个信号后,操作原创 2017-08-24 16:53:22 · 1926 阅读 · 0 评论 -
USB 3G上网卡讲解之三
USB 3G卡热插拔那些事4——pppd在上一节中我们知道3G卡设备驱动已经加载好了,并且和ttyUSB*已经绑定成功,意味着我们可以拨号了,和3G卡内部3G模块通信了,而我们知道3G模块通信是tty设备,通过串行设备,这里和3G卡的两种工作模式相吻合—moden模式. 首先我们这里先给出3G工作原理图: 我们万事俱备只欠东风了,就是pppd拨号了,当然pppd的源码自己可以去网上下载最转载 2017-09-06 16:31:53 · 2757 阅读 · 0 评论 -
fl2440——DS18B20 驱动编写
转载自:http://blog.csdn.net/zqixiao_09/article/details/50973969 供学习之用!对驱动工程师而言,时序分析的意思是让芯片之间的访问满足芯片手册中时序图信号的有效的先后顺序、采样建立时间、保持时间的要求,通过时序来达到数据传输和硬件控制的目的。 嵌入式开发平台:mini2440 DS18B20 所用GPIO:S3C2410_GPF(3)一、D转载 2017-08-20 16:47:34 · 651 阅读 · 0 评论 -
fl2440——修改UART2作为正常串口
在S3C2440芯片上,是有3个串口的,其中默认UART0,UART1是作为普通串口。而UART2被Linux内核默认配置成了红外模式,若想把它当作普通串口使用,则需要修改代码。 同时。GPH6被设置为nRTS1,GPH7被设置为nCTS1,此时,串口2是无法收发数据的。代码修改如下: 1、vim arch/arm/mach-s3c2440/mach-smdk2440.c 修改红色框处原创 2017-05-07 13:29:28 · 1098 阅读 · 0 评论 -
fl2440——Linux下I2C驱动体系
初学I2C的时候,因为第一次接触到这么一种驱动体系,与之前学习的普通字符设备驱动、platform驱动还是有一些区别的。在看内核的I2C有关源代码的时候确实感到不太能理清楚它的框架,还好网上的大神们分享的知识让我学到了很多。因此现在先对I2C有一个大致的学习,往后在做到相关的项目时再来加深、巩固。1、I2C基础知识1.1 概述IIC (也称I2C)即Inter-Integrated Circuit(原创 2017-05-05 14:19:21 · 527 阅读 · 0 评论 -
fl2440——驱动学习-LED驱动程序代码分析
1、驱动入口函数接下来从Linux驱动的入口函数module_init(s3c_led_init);开始学习。可以看到这是由s3c_led_init开始。函数如下:static int __init s3c_led_init(void) /*一般用__init修饰的变量或者函数会编译到专门的一个段里面去,这个段的数据和函数只有在kernel初始化的时候会被调用,以后一定不会被使用,kernel可原创 2017-03-27 18:47:19 · 812 阅读 · 0 评论 -
笔记——Linux Platform驱动程序框架
1.platform总线、设备与驱动 在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。 一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问题,但是在转载 2017-03-31 12:44:32 · 460 阅读 · 0 评论 -
fl2440——Platform-LED实例
/********************************************************************************* * Copyright: (C) 2017 TangBin<tangbinmvp@gmail.com> * All rights reserved. * * Filena原创 2017-03-31 12:59:50 · 428 阅读 · 0 评论 -
fl2440——驱动入门,hello world!
如同C语言的学习一样,入门是从hello world开始的,现在学习驱动设备也选择从这里开始吧! ^_^ 先贴上代码:/********************************************************************************* * Copyright: (C) 2017 TangBin<tangbinmvp@gmail.com>原创 2017-03-26 14:51:14 · 689 阅读 · 0 评论 -
fl2440——Platform_Button实例
/********************************************************************************* * Copyright: (C) 2017 TangBin<tangbinmvp@gmail.com> * All rights reserved. * * Filena原创 2017-04-04 15:33:41 · 480 阅读 · 0 评论 -
fl2440——移植USB驱动、内核添加USB支持、U盘挂载
关于USB的基础知识可以参考这篇博文:http://blog.csdn.net/u012507643/article/details/52932578 USB的协议还是比较复杂的,有空希望能了解一下,在这仅记录学习移植过程。一、修改代码vim arch/arm/mach-s3c2440/mach-smdk2440.c 添加头文件: 添加USB init函数: 在smdk2440_ma原创 2017-04-20 19:55:18 · 1125 阅读 · 0 评论 -
fl2440——内核自带LED的使用
在之前的学习中,学习了led普通字符设备以及platform总线的led。其实在linux的内核中,已经有了对s3c24xx的led支持,我们只要稍作修改便可以使能它。一、添加内核支持make menuconfig Device Drivers ---> [*] LED Support ---> 将如上选项选上即可。二、代码修改想查看自带的代码可以到[tangbin@l原创 2017-04-22 14:01:53 · 541 阅读 · 0 评论 -
fl2440——RTC(实时时钟)的学习、内核添加RTC支持
一、RTC基础知识在一个嵌入式系统中实时时钟(RTC)单元可以提供可靠的时钟包括时、分、秒和年、月、日。即使系统处于关机状态下它也能够正常工作(通常采用后备电池供电)其外围也不需要太多的辅助电路只需要一个高精度的晶振。 它的特点有: 1.时钟数据是以BCD码或者二进制表示。 2.对闰年的年、月、日能自动处理。 3.具有告警功能,当系统处于关机状态时能产生告警中断。 4.独立的电源输入。原创 2017-04-23 14:46:14 · 732 阅读 · 0 评论 -
驱动学习——Linux下浅析USB转串口驱动的流程
我们知道,Linux对于USB设备的支持是十分强大的,USB接口的无线网卡、USB的摄像头、USB键盘、鼠标等等。做些许代码修改,内核选项选中支持后,即可使用这些设备。但是我们要清楚,越是简单的使用,其背后就越是复杂的设计。粗略翻了翻《Linux 那些事儿之我是U盘》,才意识到Linux的USB host驱动有多复杂,不是两三天就能读懂的。( T^T..)。 这篇博文仅分析一下从内核初始化到USB原创 2017-09-01 18:56:43 · 6665 阅读 · 2 评论