driver
文章平均质量分 92
win2domain
嵌入式开发、通讯行业
展开
-
linux spi子系统驱动分析
2.6.18内核下已经添加了完整的spi子系统了,参考mtd的分析,将从下到上层,再从上到下层的对其进行分析。以下先从下到上的进行分析: driver/spi下有两个底层相关的spi驱动程序:spi_s3c24xx.c和spi_s3c24xx_gpio.c其中spi_s3c24xx.c是基于s3c24xx下相应的spi接口的驱动程序,spi_s3c24xx_gpio.c转载 2014-08-28 14:46:06 · 410 阅读 · 0 评论 -
基于Linux内核SPI子系统工作机制
转载: http://www.jsembed.com/show.asp?id=540(英贝得)基本思路,需要了解的知识点。硬件方面: 1:什么是SPI 2:三星的ARM9 s3c2440 的SPI寄存器的使用 3:什么是CAN总线 4:CAN总线的传输及特点 5:MCP2515 CAN控制器的使用软件方面: 1:了转载 2014-08-28 14:38:03 · 499 阅读 · 0 评论 -
Linux内核访问外设I/O资源的方式 地址映射
我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。 Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。 一、动态映射(ioremap)方式 动态映射方式是大家使用了比较多的,也比较简单。即直转载 2014-08-28 13:50:24 · 1132 阅读 · 0 评论 -
linux中断处理浅析《转》
最近在研究异步消息处理, 突然想起linux内核的中断处理, 里面由始至终都贯穿着"重要的事马上做, 不重要的事推后做"的异步处理思想. 于是整理一下~第一阶段--获取中断号每个CPU都有响应中断的能力, 每个CPU响应中断时都走相同的流程. 这个流程就是内核提供的中断服务程序.在进入中断服务程序时, CPU已经自动禁止了本CPU上的中断响应, 因为CPU不能假定中断服务程序是可重入的转载 2014-08-28 15:10:46 · 327 阅读 · 0 评论 -
LINUX内存管理(段式页式管理)《转》
转贴)本贴涉及的硬件平台是X86,如果是其它平台,嘻嘻,不保证能一一对号入座,但是举一反三,我想是完全可行的。一、概念1、物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。—— 这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大转载 2014-08-28 14:49:22 · 406 阅读 · 0 评论 -
inux spi子系统驱动分析(续 )
上文从下到上的介绍了spi子系统,现在反过来从上到下的来介绍spi子系统的使用:int spi_register_driver(struct spi_driver *sdrv){ sdrv->driver.bus = &spi_bus_type; if (sdrv->probe) sdrv->driver.probe =转载 2014-08-28 14:44:39 · 353 阅读 · 0 评论 -
linux S3C2440 spi 驱动简单测试 (基于简单字符驱动)
参考一:这两天参考网上的资料,自己写了个SPI的驱动,并实际测试通过。硬件平台:mini2440 用的是S3C2440 的SPI1(共有2个SPI模块)操作系统:linux-2.6.32.2测试方法:将SPI的MISO与MOSI管脚短路,这样读数据的时候第一个发出的dummy字节即为收到的字节。下面是驱动的源代码(mini2440_spi.c):转载 2014-08-28 14:42:06 · 399 阅读 · 0 评论 -
mini2440 SPI驱动移植 (基于SPI子系统)
参考一:按照下面帖子的方法,本人试验成功,只需按照下面步骤进行就行了。原帖地址: http://blog.csdn.net/lxmky/article/details/6858322注:原文最后短接的MISO和MOSI指的是SPI1的,区别于SPI0mini2440中,SPI0和SPI1的四个功能引脚均接有上拉电阻10K到3.3V。转载 2014-08-28 14:41:11 · 777 阅读 · 0 评论 -
linux设备驱动归纳总结(八):2.match.probe.remove
2011-02-02 23:13:50分类: 嵌入式linux设备驱动归纳总结(八):2.总线、设备和驱动的关系xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍了总线、设备和驱动函数的注册,这节着重介绍它们转载 2014-10-24 15:59:28 · 299 阅读 · 0 评论 -
s3c2440 省电模式开发详解 2011-07-08 11:21:08
s3c2440 省电模式开发详解 2011-07-08 11:21:08分类: LINUX=======================开发资源及配置1、源码包Kernel :linux-2.6.18.2Uboot :u-boot-1.1.4Gcc :arm-linux-gcc-3.4.1.tar.bz2开发流程及转载 2014-10-21 14:17:31 · 348 阅读 · 0 评论 -
strace交叉编译
(1)下载strace源码https://sourceforge.net/projects/strace/(2)加压源码,然后配置./configure --host=arm-linux CC=arm-linux-gcc AR=arm-linux-ar LD=arm-linux-ld(3)make原创 2016-06-05 22:06:00 · 1296 阅读 · 0 评论 -
驱动Makefile
编译驱动模块原创 2016-05-22 14:18:35 · 234 阅读 · 0 评论 -
linux usb初始化
linux usb初始化谨以此文纪念过往的岁月 一.前言对于usb的普通驱动,我们了解了不少,但是对于usb的真正核心还是不是太理解。该文中对于usb的初始化进行一定的学习,如有不对之处,请各位多多指教。 二.usb子系统初始化。话说在linux启动之初,就会将usb子系统初始化完成,亦如input子系统和V4L2一样。usb_init就完成了初始化以及启动usb hub守转载 2016-05-25 22:46:47 · 393 阅读 · 0 评论 -
S3C2440 之USB设备篇
S3C2440 之USB 设备篇S3C2440 有2 个USB 主机接口和1 个USB 设备接口, 本篇讲述USB 设备接口。1 USB 的分类及主机接口和设备接口的区别1.1USB2.0 按照速度分为以下三类High-speed USB2.0 :理论速度480Mbps ,对应之前的USB2.0 ; Full-speed USB2.0 :理论速度12Mbps ,也就是过去的US转载 2016-05-25 22:44:26 · 842 阅读 · 1 评论 -
s3c2440的USB主机控制器
s3c2440提供了USB主机接口,它与OHCI v1.0完全兼容。要使用该功能,就必须熟悉OHCI v1.0规范;而要熟悉OHCI v1.0规范,那么还必须先熟悉USB v1.1协议。因此涉及到该部分的内容较多,要想正确使用s3c2440所提供的USB主机接口也不是一件容易的事情。在这里,我主要介绍USB设备枚举过程中所涉及到的一些知识,并给出具体的实现程序。 OHCI(O转载 2016-05-25 22:42:11 · 410 阅读 · 0 评论 -
linux内核学习好网站
学习内核的好网站http://kernelnewbies.org/http://kerneltrap.org/http://lwn.net/http://www.kerneltravel.net/http://jungla.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.htmlhttp://kernelbook.sourcefo转载 2015-03-19 16:29:59 · 363 阅读 · 0 评论 -
SPI中的极性CPOL和相位CPHA是什么以及如何设置
【背景】最近在看关于Silicon Labs的C8051F347的某个驱动中,关于SPI部分初始化的代码,看到其对于SPI的设置为CPOL=1,CPHA=0,对于CPOL及CPHA的含义不了解,想要搞懂,这两个参数到底是什么意思,以及为何要这么设置。所以才去找了SPI的极性和相位的相关资料,整理如下。【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多转载 2014-08-28 14:40:41 · 519 阅读 · 0 评论 -
Linux内核SPI子系统架构分析(清晰)
转载:http://jianbo.de/b/archives/918SPI总线上有两类设备:一类是主控端,通常作为SOC系统的一个子模块出现,比如很多嵌入式MPU中都常常包含SPI模块。一类是受控 端,例如一些SPI接口的Flash、传感器等等。主控端是SPI总线的控制者,通过使用SPI协议主动发起SPI总线上的会话。而受控端则被动接受 SPI主控端的指令,并作出响应的响应。L转载 2014-08-28 14:36:51 · 707 阅读 · 0 评论 -
linux内核中分配内存的字节对齐算法i
在网络驱动程序中,分配net_device和sizeof_priv的内存空间,用到以下算法:alloc_size = sizeof(struct net_device);if (sizeof_priv) { /* ensure 32-byte alignment of private area */ alloc_size = (alloc_siz转载 2014-08-28 14:35:46 · 1296 阅读 · 0 评论 -
pc uvc
對於在網上論壇找不到合適的方法,以及Ubuntu隻有音頻設置軟件,我感到十分無奈。也許是大蝦們不想為那些對Linux沒有學習興趣的人費口水的關係吧,沒搜尋到一絲有見解的解決方案。不過算了,最終還是自己動腦解決了……正所謂一切皆文件嘛,要解決攝像頭的問題,當然得找攝像頭的相關設備文件和驅動了。想想在Windows下是通過設備管理工具缷載攝像頭驅動的,那Linux下的驅動文件都是咋缷載的呢?通過查转载 2014-07-21 11:19:44 · 615 阅读 · 0 评论 -
Linux设备驱动程序学习(19)-USB 驱动程序(四)
Linux设备驱动程序学习(19)-USB 驱动程序(四)来源: ChinaUnix博客 日期: 2009.08.05 13:33 (共有条评论) 我要评论 编写 USB 驱动程序(本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程转载 2014-07-21 10:58:49 · 722 阅读 · 0 评论 -
Linux USB驱动框架分析(六)
Linux USB驱动框架分析(六)作者:admin 文章来源:网络 点击数: 更新时间:2012-3-7http://www.linuxpx.cn/Linux/Linux_1747.html说的usb子系统的IO操作,不得不说usb requestblock,简称urb。事实上,可以打一个这样的比喻,usb总线就像一条高速公路,货转载 2014-07-21 10:47:07 · 461 阅读 · 0 评论 -
在debian和gentoo上安装摄像头驱动程序及应用
首先到http://mxhaard.free.fr处下载的需的驱动,内核版本是2.6.11以上的用gspca,2.6.11以下的用spca5xx(这也不是绝对的,因为我曾在2.6.17下也驱动成功过)。一、驱动安装1、编译内核<M> Video For Linux V4l USB devices ---> USB ZC0301[P] Image Processo转载 2014-07-21 11:25:11 · 973 阅读 · 0 评论 -
usb 驱动书籍
http://oss.org.cn/kernel-book/ldd3/ch13s04.html原创 2014-07-21 10:35:13 · 765 阅读 · 0 评论 -
USB驱动程序的匹配分析
2012-09-19 01:30:39| 分类: 韦东山视频第二轮|举报|字号 订阅static struct usb_device_id usb_mouse_id_table [] = {{ USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,USB_INTERF转载 2014-07-21 10:04:48 · 796 阅读 · 0 评论 -
Linux USB驱动工作流程
Linux USB驱动工作流程2012-06-25 11:00:35 我来说两句 收藏 我要投稿Linux USB驱动工作流程 1. USB主机在Linux驱动中,USB驱动处于最底层的是USB主机控制器硬件,在其之上运行的是USB主机控制器驱动,主机控制器之上为USB核心层,再上层为USB设备驱动层(插入主机上的U盘、鼠标转载 2014-07-21 10:44:23 · 566 阅读 · 0 评论 -
usb描述符分析
Bus 001 Device 002: ID 0ac8:3450 Z-Star Microelectronics Corp. Device Descriptor: bLength 18 bDescriptorType 1 // bDescriptorType 1 0x01 DEVICE descriptor bcdUSB原创 2014-07-20 20:55:51 · 2042 阅读 · 0 评论 -
buntu涓嬩娇鐢║VC鐨勬憚鍍忓ご
Strict Standards: Only variables should be assigned by reference in/home/joecen2008/joecen.com/wp-includes/post.php on line218« 璞崕鏃呮父涔︾睄Strict Standards: Only variables should be assigned by re转载 2014-07-21 11:18:09 · 1129 阅读 · 0 评论 -
总线、设备和驱动的关系
linux设备驱动归纳总结(八):2.总线、设备和驱动的关系xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx上一节介绍了总线、设备和驱动函数的注册,这节着重介绍它们三者的关系,和上一节一样,我模拟一条usb总线,一个usb鼠标设备和一个usb鼠标驱转载 2014-07-21 13:20:04 · 1088 阅读 · 0 评论 -
配置NFS服务器启动mini2440
配置NFS服务器启动mini2440 (2011-09-27 11:15:53)转载▼标签: 配置nfs mini2440 网络文件系统 杂谈分类: 技术文章NFS启动mini2440本文仅是学习的总结,仅供参考。首先对NFS启动系统有一个感性的认识,NFS就转载 2014-07-29 09:48:20 · 504 阅读 · 0 评论 -
内核中的likely和unlikely宏定义
在内核代码中经常会看到unlikely和likely的踪影。他们实际上是定义在 linux/compiler.h 中的两个宏。 #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) 这里的__built_expect()函数是gcc转载 2014-08-28 14:33:11 · 385 阅读 · 0 评论 -
gumptious linux驱动移植的重要数据结构(一)
对于嵌入式 Linux 系统来说,有各种体系结构的处理器和硬件平台,并且用户需要根据需求自己定制硬件板。只要是硬件平台有些变化,即使非常小,可能也需要做一些移植工作。内核移植是嵌入式Linux系统中最常见的一项工作。内核移植工作主要是修改跟硬件平台相关的代码,一般不涉及 Linux 内核通用的程序。移植的难度也取决于两种硬件平台的差异。Linux 对于特定的硬件平台的软件就叫作 B转载 2014-08-28 14:20:42 · 338 阅读 · 0 评论 -
嵌入式软件测试的十大方法《转》
在嵌入式软件开发过程中,一般来说,花在测试和花在编码的时间比为3:1(实际上可能更多)。这个比例随着你的编程和测试水平的提高而不断下降,但不论怎样,软件测试对一般人来讲很重要。很多年前,一位开发人员为了在对嵌入式有更深层次的理解,向Oracle询问了这样的一个问题:我怎么才能知道并懂得我的系统到底在干些什么呢? Oracle面对这个问题有些吃惊,因为在当时没有人这么问过,而同时代的嵌转载 2014-08-28 15:13:32 · 486 阅读 · 0 评论 -
网卡驱动编写必读-重要概念 分享
一、什么是网卡? 网卡现在已经上成为了目前电脑里的标准配置之一。小小的网卡,究竟蕴涵着多少秘密呢?让我们一起来看。 我们最常用的网络设备当属网卡了。网卡本身是LAN(局域网)的设备,通过网关、路由器等设备就可以把这个局域网挂接到Internet上。而Internet本身就是无数个这样的局域网组成的。 网卡有许多种,按照数据链路层控制来分有以太网卡,令牌环网卡,ATM网卡等;按照物理层来分类有无线网转载 2014-08-28 14:31:45 · 440 阅读 · 0 评论 -
ARM Linux静态映射分析
在华清远见上课过程中,发现静态映射方面初学者比较难于掌握和理解,下面分析一下静态映射机制的原理并通过GPIO和USB、LCD等的静态映射作为例子来说明如何通过这种静态映射的方式访问外设资源。内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化。machine_d转载 2014-08-28 13:38:13 · 300 阅读 · 0 评论 -
程的虚拟地址空间,堆栈、堆、数据段、代码段《转》
上图是进程的虚拟地址空间示意图。堆栈段: 1. 为函数内部的局部变量提供存储空间。 2. 进行函数调用时,存储“过程活动记录”。 3. 用作暂时存储区。如计算一个很长的算术表达式时,可以将部分计算结果压入堆栈。数据段(静态存储区): 包括BSS段的数据段,BSS段存储未初始化的全局变量、静态变量。数据段存储经过初始化的全局和静态变量。转载 2014-08-28 14:48:22 · 379 阅读 · 0 评论 -
Linux中Workqueue机制分析
走入Linux的殿堂已经有一年有余了,在这里我想将Linux的 各种实现机制分析一遍,一方面对自己来说也是温故而知新,另一方面,促进大家的交流,最好能够给大家一些抛砖引玉的启迪。我是硬件出身,搞硬件已经好多年 了,从是专门软件开发也接近两年了,在这一段时间内我越发认为软硬件协同设计是未来发展的主流,软硬件的界限越来越模糊,软硬件的设计思想是相通的,实现 方法是各异的,实现的结果上当然也存在较大转载 2014-08-26 16:26:31 · 363 阅读 · 0 评论 -
【转载】Linux-2.6.32.2内核在mini2440上的移植(三)---DM9000网卡驱动移植
移植环境(红色粗字体字为修改后内容,蓝色粗体字为特别注意内容)1,主机环境:VMare下CentOS 5.5 ,1G内存。2,集成开发环境:Elipse IDE3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。4,开发板:mini2440,2M nor flash,128M nand fl转载 2014-08-03 21:17:28 · 469 阅读 · 0 评论 -
移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动
移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动 2014-01-01 11:36:45分类: 嵌入式 移植Linux3.4.2版本内核到mini2440(二)--添加网卡、UVC摄像头、LCD驱动 该移植工作主要参考了韦东山的《嵌入式Linux应用开发完全手册》,第二转载 2014-07-19 00:56:59 · 1332 阅读 · 0 评论