FL2440驱动
Escropion
嘿,我的老伙计!
展开
-
FL2440驱动入门——helloworld
linux驱动入门——helloworld该文主要内容:1.驱动的编写2.ARM以及PC的Makefile编写3.开发板tftp无法下载文件的问题4.开发板无法使用rmmod命令的问题在编程的世界里, 一种编程语言一般从Hello World开始。 按照惯例,驱动开发的世界也从Hello模块开始入门。原创 2017-03-18 17:04:10 · 713 阅读 · 0 评论 -
FL2440添加DS18B20驱动
FL2440添加DS18B20驱动linux内核对于各种外设支持非常好,内核已经集成了大部分驱动,DS18B20属于单总线设备,在内核的驱动代码目录(drivers/w1/)下有专门的单总线设备驱动,我们只需要对其稍作修改就能使用。Dallas 1-wires是Dallas公司的单总线设备,DS18B20(温湿度传感器)就是其中最具代表的设备,只用一根总线与cpu进行通信并且实现数据传输。具有体积小原创 2017-04-27 14:44:14 · 582 阅读 · 0 评论 -
linux I2C驱动移植
linux I2CI²C总线仅使用SCL,SDA两根信号线实现设备间的数据交互,被广泛应用于微控制领域芯片与芯片之间的通信,如EEPROM,实时时钟,小型LCD等与CPU之间的通信。I2C协议I2C利用两根总线根据自己的通信协议实现数据交互起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。停止信号:当SCL为高期间,SDA由低到高的跳变;停止信原创 2017-05-08 16:34:16 · 2436 阅读 · 1 评论 -
FL2440——Gadget驱动实现模拟U盘功能
由于项目需要,需要将Fl2440实现模拟U盘功能。这种功能在生活中很常见,比如我们的手机用USB线连接上电脑的时候,电脑会自动识别为U盘,读取手机(Nandflash)里的文件。Gadget驱动在做移植之前我们需要先了解一个驱动——gadget驱动USB驱动分为主机侧驱动(USB host驱动)和设备侧驱动(gadget驱动)。顾名思义,主机侧驱动一般是将开发板作为主机,可以外接USB设备如U盘,鼠原创 2017-05-05 12:52:06 · 3615 阅读 · 2 评论 -
FL2440—独立ADC驱动模块
fl2440 ADC驱动编写前面的学习中多次了解到linux内核对于各种常见驱动的支持相当的好,ADC也不例外。但是为了驱动的学习,参考datasheet的内容以及网友的博客文章,依然自己编写单独的ADC驱动模块。下面对ADC驱动的学习做一个简单的总结。在s3c2440中集成了一个8通道的10位ADC,其从有4个通道即XP, XM, YP, YM连接到触摸屏的接口,用来检测转换触摸屏的模拟信号。剩下原创 2017-04-27 20:43:37 · 583 阅读 · 0 评论 -
FL2440—基于platform 模型的DS18B20驱动实例
基于platform 模型的DS18B20驱动实例通过前面的学习了解到DS18B20是基于单总线协议靠一个单线端口与CPU通信实现数据传输,关于单总线设备之前接触的比较少,这次通过学习编写DS18B20的驱动,总算对这种通信协议有了多一点的了解。单总线通信协议时序理解初始化序列——复位和存在脉冲如图为DS18B20的单总线通信协议的初始化序列时序,DS18B20的所有通信都由由复位脉冲组成的初始化序原创 2017-04-27 14:45:39 · 1132 阅读 · 0 评论 -
FL2440添加自带led驱动
FL2440添加自带led驱动在之前学习驱动自己写过led的驱动程序,其实s3c2440对于驱动已经支持得非常好,内核里面已经有了led的驱动程序,我们要使能led驱动只需要稍作修改。make menuconfig 配置 Device Drivers ---> [*] LED Support ---> [*] LED Class Support原创 2017-04-20 21:47:31 · 494 阅读 · 0 评论 -
fl2440添加USB驱动
fl2440添加USB驱动make menuconfig选项linux内核对于USB驱动已经完善得很好,我们只需要在make menuconfig选项中选择相应的选项便可以直接使用。 Device Drivers ---> Generic Driver Options ---> (/sbin/hotplug) path to uevent helper原创 2017-04-15 20:54:36 · 1010 阅读 · 0 评论 -
fl2440添加SD卡驱动
fl2440添加SD卡驱动linux中对s3c2440的驱动已经完善得比较好,如果需要使用相关驱动,我们只需要在make menuconfig中选上相应的配置选项,并且稍稍修改内核源码就可以使用相关驱动。SD卡的驱动也不例外make menuconfig 选项Device Drivers —> <*> MMC/SD/SDIO card support —>原创 2017-04-17 20:51:21 · 436 阅读 · 0 评论 -
plat_button驱动实例
plat_button驱动实例前面对plat_button驱动代码重要部分做了简要分析,现在基于plat_button驱动代码写一个测试程序,用以测试驱动代码的功能是否正确。驱动代码源码/********************************************************************************* * Copyright: (C) 2原创 2017-04-14 15:08:34 · 469 阅读 · 0 评论 -
plat_led驱动实例
上篇文章对于plat_led的驱动程序做了一个简要分析,现在基于plat_led驱动程序写了一个简单的测试程序,用以测试plat_led驱动程序的正确性。程序源码plat_led驱动程序/******************************************************************************** * Copyright: (C) 20原创 2017-04-12 19:46:53 · 789 阅读 · 0 评论 -
按键驱动——plat_button分析总结
plat_button驱动学习总结前面学习了LED驱动代码和基于platform总线的LED驱动代码,对于基本的ARM开发板驱动以及platform总线有了简单的了解,现在开始对按键的驱动进行学习总结。按键驱动同样是基于platform总线来写的驱动,整个驱动和设备的注册过程和之前的plat_led驱动完全相同,不同的是在plat_led驱动的基础之上,增加了中断和阻塞以及轮询等相关知识。初始化函数原创 2017-04-13 21:18:47 · 674 阅读 · 0 评论 -
plat_led驱动总结
plat_led驱动总结@(linux 编程)[led, 驱动]platform驱动介绍在学习platform驱动之前,我写过最原始的 led 驱动程序,其包含了硬件初始化和设备注册的所有工作。这种模型理解起来直观易懂,但是在实际的应用当中却显得不那么理想。设备信息和驱动代码冗余在一起,一旦设备信息发生一点变化将会导致整个驱动程序的大幅度修改甚至重写,十分的麻烦。因此,linux引入了platfor原创 2017-04-12 18:52:54 · 711 阅读 · 0 评论 -
浅析request_mem_region和ioremap函数的理解
在了解这两个函数之前我们首先要明白CPU的寻址。任何一种外设都是通过读写寄存器来控制的,寄存器又通常包括三大类:控制寄存器,状态寄存器和数据寄存器。根据CPU体系的不同,CPU对I/O端口的编址方式分为I/O映射和内存映射两种方式。(1).I/O映射方式: 以intel为代表的i386系列处理器中,内存和外部I/O是独立编址独立寻址。即在该体系中存在两种地址空间:内原创 2017-03-25 18:45:51 · 3584 阅读 · 0 评论 -
Fl2440内核添加DM9000网卡驱动
上篇文章对于开发板启动之后无法与主机进行通信的原因进行了分析总结,其中原因之一是内核没有配置网卡驱动,这里就添加网卡驱动做一个总结。1.使用 ifconfig -a 命令可以看到内核当中没有网卡驱动,接下来我们就在内核中添加网卡的配置。2.修改内核源码,添加网卡驱动编译2-1.在mach-smdk2440.c文件中添加如下代码[lwn@localhost linux原创 2017-03-19 12:08:35 · 643 阅读 · 0 评论 -
fl2440驱动学习——LED驱动代码分析
前两天对helloworld驱动进行了学习,现在正式进入到FL2440驱动的学习。还是按照程序入门的步骤,现在对led驱动做一个分析总结。Led设备属于字符设备,字符设备驱动程序适合于大多数简单的硬件设备,因此作为驱动入门学习起来更容易理解和掌握。1.s3c_led_init()函数分析一个驱动代码,首先应该找到驱动初始化函数,在helloworld驱动中即hello_in原创 2017-03-23 21:04:59 · 544 阅读 · 0 评论 -
led驱动实例
前面分析了fl2440的led驱动代码,现在就基于之前的LED驱动代码完成应用程序(跑马灯)的实现,并且在linux系统下手动创建设备节点,运行跑马灯程序。1.跑马灯程序首先来看 用户空间下跑马灯程序的实现#include #include #include #include #include #include #include #in原创 2017-03-26 12:37:03 · 1461 阅读 · 0 评论