Linux驱动
文章平均质量分 50
williamwanglei
这个作者很懒,什么都没留下…
展开
-
转载_使用ioctl和内核交换数据
使用ioctl和内核交换数据1. 前言使用ioctl系统调用是用户空间向内核交换数据的常用方法之一,从ioctl这个名称上看,本意是针对I/O设备进行的控制操作,但实际并不限制是真正的I/O设备,能是所有一个内核设备即可。2. 基本过程在内核空间中ioctl是非常多内核操作结构的一个成员函数,如文件操作结构struct file_operations(include/linux/f转载 2012-12-11 10:58:23 · 429 阅读 · 0 评论 -
转载_一个 SPI 转串口驱动的优化
一个 SPI 转串口驱动的优化作者: zjujoe 转载请注明出处Email : zjujoe@yahoo.comBLOG : http://blog.csdn.net/zjujoe 由于串口不够用,我们选用了 Exar 公司的 xr20m1172 SPI/I2C 转串口芯片。考虑到速率问题( I2c 较慢只有 100k/400k 两种模式),我们采用 SPI 接口驱动该芯片。转载 2013-06-13 10:11:46 · 1039 阅读 · 0 评论 -
转载_ARM-Linux驱动--Watch Dog Timer(看门狗)驱动分析
硬件平台:FL2440内核版本:2.6.28主机平台:Ubuntu 11,04内核版本:2.6.39原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/65952651、看门狗驱动的原理下图是看门狗驱动的原理图可以看出,PCLK是系统时钟,经过8位的预分频,然后再被转载 2013-06-03 14:54:15 · 1340 阅读 · 0 评论 -
转载_i2c 知识点总结
0、 总线端:主要是mach-smdkc110.c和i2c_s3c2410.c两个文件:主要完成资源的注册,在s3c24xx_i2c_probe中创建adapter和client后总线端退出 设备端:主要是用户写的部分 通过i2c_add_driver 匹配i2c_driver的id_table中的name和 client中的name后,进一步初始化client并调用i2c_driv转载 2013-08-01 16:59:29 · 886 阅读 · 0 评论 -
转载_linux设备驱动:poll和sellct
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx接下来会讲系统调用select在驱动中的实现,如果对系统调用select不太懂的话,建议先看书补习一下。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx转载 2013-08-05 18:38:40 · 544 阅读 · 0 评论 -
转载_ARM-Linux内核驱动加载过程思路
Ø 取得驱动C文件并建立相应文件夹实现内核添加(以编译测试驱动程序为例)1) 在相应的文件夹下面建立驱动文件夹将C程序放入该驱动文件夹下2) 创建或下载驱动C文件的头文件3) 编辑该驱动集合(该驱动模块)下面的Makefile 添加编译选项#===============driver_test=========转载 2013-08-16 16:46:17 · 973 阅读 · 0 评论 -
转载_linux 串品驱动的 uart_port api
基于内核版本2.6.16.14. 写于(美国)东部时区 2006年05月05日 22点49分 . 下层串行API -------------------- $Id: driver,v 1.10 2002/07/22 15:27:30 rmk Exp $本文简要介绍了新的串行驱动的某些方面。这并不完整,有任何问题请联系在serial_amba.c可转载 2013-08-09 16:00:26 · 775 阅读 · 0 评论 -
转载_【整理】什么是SPI的bitbang / bit bang / bit-bang / bitbanging(转)
转自:http://hi.baidu.com/serial_story/blog/item/952a98860f09033266096e69.html在了解了基本的SPI之后,在Linux内核源码里面,发现关于SPI来说,有个叫做bitbang的东西,所以有点迷惑,想搞清楚bitbang是啥意思。找了点资料,大概看明白了:首先,对于多数情况来说,我们所用的SPI,都是有对应转载 2013-09-25 14:48:18 · 1986 阅读 · 0 评论 -
转载_linux中at91rm9200板子nor flash驱动添加及心得
linux 2.6.20 关于mtd驱动的一些东西: 驱动必须调用register_mtd_chip_driver(struct mtd_chip_driver *drv) 将自己的驱动注册到驱动列表chip_drvs_list中,这样在接下来physmap_flash_probe--> do_map_probe-->get_mtd_chip_drive转载 2013-10-24 20:12:52 · 2894 阅读 · 0 评论 -
转载_linux驱动中的poll 和 用户空间的select
使用非阻塞 I/O 的应用程序常常使用 poll, select, 和 epoll 系统调用. poll, select 和 epoll 本质上有相同的功能: 每个允许一个进程来决定它是否可读或者写一个或多个文件而不阻塞. 这些调用也可阻塞进程直到任何一个给定集合的文件描述符可用来读或写. 因此, 它们常常用在必须使用多输入输出流的应用程序, 而不必粘连在它们任何一个上. 相同的功能常常由多个函数转载 2013-05-28 15:42:39 · 674 阅读 · 0 评论 -
Linux_SPI驱动debug
在调试SPI驱动时,遇到稳定性问题,当SPI信息发送频繁时,也就是说,SPI总线的吞吐量较高时,会导致用于SPI数据收发的工作队列内核线程挂死。最终解决的方法比较典型:抽象的解释说法就是修改后的驱动代码可以让中断运行的更流程,数据处理的负荷更加均匀。有问题的驱动代码是将发送和接收的SPI消息都加入SPI消息队列后,再统一调用spi_sync函数进行消息调度,这样带来的问题是,如果S原创 2013-05-24 17:43:01 · 3044 阅读 · 1 评论 -
转载_U-BOOT全线移植(1)
【摘要】本节介绍了bootloader的基本概念。首先分析了为什么要针对特定的CPU和开发板移植bootloader的必要性。然后介绍了两种如何在裸板中烧写bootloader的方法以及如何确定烧写地址。其次介绍了产品发布的启动加载模式和开发使用的下载模式(更新内核文件系统及bootloader自身)。最后介绍了bootloader的两个通用启动阶段的流程及代码特性和运行位置。【关键词】boo转载 2013-02-04 15:38:28 · 1193 阅读 · 0 评论 -
转载_U-BOOT全线移植(2)
3.5 移植的具体步骤关于u-boot的移植如下,由于u-boot的软件设计体系非常清晰,它的移植工作并不复杂,相信各位的代码阅读功力不错的话,参照如下就可以完成。×××××××××××××××××××××××××××××××××××Ifthe system board that you have is not listed, then you will need toport U-B转载 2013-02-04 15:39:09 · 1126 阅读 · 0 评论 -
Linux下/dev/mem和/dev/kmem及操作gpio实例
Linux下/dev/mem和/dev/kmem的区别:/dev/mem: 物理内存的全镜像。可以用来访问物理内存。/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。作用:前者用来访问物理IO设备,比如X用来访问显卡的物理内存,或嵌入式中访问GPIO。用法一般就是open,然后mmap,接着可以使用map之后的地址来访问物理内存。这其实就是实原创 2013-03-05 09:49:32 · 9273 阅读 · 0 评论 -
转载_Linux驱动虚拟地址和物理地址的映射
一般情况下,Linux系统中,进程的4GB内存空间被划分成为两个部分------用户空间和内核空间,大小分别为0~3G,3~4G。 用户进程通常情况下,只能访问用户空间的虚拟地址,不能访问到内核空间。 每个进程的用户空间都是完全独立、互不相干的,用户进程各自有不同的页表。而内核空间是由内核负责映射,它并不会跟着进程改变,是固定的。内核空间地址有自己对应的页表,内核的虚拟空间独立于其转载 2013-03-06 19:44:56 · 9256 阅读 · 0 评论 -
转载_Linux设备模型(总线、设备、驱动程序和类)
之一:bus_type 总线是处理器和一个或多个设备之间的通道,在设备模型中,所有的设备都通过总线相连,甚至是内部的虚拟"platform"总线。可以通过ls -l /sys/bus看到系统加载的所有总线。drwxr-xr-x root root 1970-01-01 00:02 platformdrwxr-xr-x root root转载 2013-04-28 09:19:01 · 577 阅读 · 0 评论 -
转载_Linux驱动程序开发 - 设备驱动模型初探
序言从这一章开始,我们将详细的介绍Linux的设备驱动模型。Linux设备驱动模型是一个相当复杂的系统,对于初学者来说真有些无从入手。而且更加困难的是,随着新的Linux Kernel的release,Linux的设备驱动模型总会有或大或小的变化,我们将尽量展现 Linux Kernel 的这种变化。早期的Linux内核(版本2.4之前)并没有实现一个统一的设备模型,设备节点的转载 2013-04-28 15:18:27 · 647 阅读 · 0 评论 -
转载_linux设备驱动---中断的具体实现
linux设备驱动归纳总结(六):1.中断的实现xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx一、什么是中断中断分两种:1)中断,又叫外部中断或异步中断,它的产生是由于外设向处理器发出中断请求。其中外部中断转载 2013-05-22 18:54:19 · 804 阅读 · 0 评论 -
转载_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允许用户指转载 2013-05-23 18:57:23 · 1139 阅读 · 0 评论 -
Linux内核及驱动学习笔记---持续更新
Linux内核及驱动学习笔记1、内核中对于不同数据的提示在你通读 file_operations 方法的列表时, 你会注意到不少参数包含字串 __user. 这种注解是一种文档形式, 注意, 一个指针是一个不能被直接解引用的用户空间地址. 对于正常的编译, __user 没有效果, 但是它可被外部检查软件使用来找出对用户空间地址的错误使用.2、使用scull设备进行原创 2013-06-03 19:20:10 · 1025 阅读 · 0 评论