[转载]Linux驱动mmap内存映射
摘要:原文地址:https://www.cnblogs.com/wanghuaijun/p/7624564.html mmap在linux哪里? 什么是mmap? 上图说了,mmap是操作这些设备的一种方法,所谓操作设备,比如IO端口(点亮一个LED)、LCD控制器、磁盘控制器,实际上就是往设备的物理地址
阅读全文
posted @
2018-12-08 14:57
阳光农场皮卡
阅读(319)
推荐(0)
module_param 用于动态开启/关闭 驱动打印信息
摘要:1.定义模块参数的方法: module_param(name, type, perm); 其中,name:表示参数的名字; type:表示参数的类型; perm:表示参数的访问权限; type参数设定的类型和perm的访问权限具体数值数值请参考内核定义。 2、可以在insmod(装载模块)的时候为参
阅读全文
posted @
2018-05-07 16:51
阳光农场皮卡
阅读(390)
推荐(0)
[转载]amba_device使用分析
摘要:什么是AMBA? AMBA是一个片内总线规范。 ARM官网的介绍:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0224b/index.html AMBA 协议是用于连接和管理片上系统 (SoC) 中功能块的开放标准和芯
阅读全文
posted @
2018-04-26 13:51
阳光农场皮卡
阅读(720)
推荐(0)
S3C2440 SPI驱动框架
摘要:S3C2440 SPI驱动代码详细解读: https://www.linuxidc.com/Linux/2012-08/68402p4.htm 一、platform device and board_info 二、Platform driver
阅读全文
posted @
2018-03-12 10:08
阳光农场皮卡
阅读(202)
推荐(0)
DM8127-UART驱动
摘要:一、重要文件 1、/arch/arm/plat-omap/include/plat/omap-serial.h ##串口名称 1)宏定义#define OMAP_MAX_HSUART_PORTS 改为 2,配合4(1)可增加UART1; 2、/arch/arm/match-omap2/device.
阅读全文
posted @
2018-02-28 11:04
阳光农场皮卡
阅读(305)
推荐(0)
SPI驱动框架-1(DM8127 Linux2.6.37为例)
摘要:一、驱动程序结构 1、platform_device 文件:/arch/arm/mach-omap2/device.c 2、dev_devices 文件:/arch/arm/mach-omap2/board-ti8148ipnc.c 1、platform_driver 文件:/driver/spi/
阅读全文
posted @
2018-02-11 09:43
阳光农场皮卡
阅读(531)
推荐(0)
[转载]嵌入式linux下操作GPIO
摘要:本文转自:http://blog.csdn.net/mirkerson/article/details/8464231 在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sy
阅读全文
posted @
2018-01-31 10:00
阳光农场皮卡
阅读(907)
推荐(0)
[转载]Linux C 字符串函数 sprintf()、snprintf() 详解
摘要:一、sprintf() 函数详解 在将各种类 型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。 由于 sprintf 跟 printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致 sprintf 比 printf 有用得多。所
阅读全文
posted @
2018-01-10 11:25
阳光农场皮卡
阅读(1289)
推荐(0)
[转载]create_proc_read_entry中函数的说明
摘要:原型: 说明:name : 要创建的文件名;mode : 文件掩码,为 0 则按照系统默认的掩码创建文件。base : 指定该文件所在的目录,如果为 NULL,则文件被创建在 /proc 根目录下。read_proc : 实现该文件的 read_proc 函数。也就是说,当我们读取 "name" 这
阅读全文
posted @
2018-01-10 11:01
阳光农场皮卡
阅读(559)
推荐(0)
[转载]rmmod: can't change directory to '/lib/modules': No such file or directory
摘要:转载网址:http://blog.csdn.net/chengwen816/article/details/8781096 在我新移植的kernel(3.4.2)和yaffs2文件中,加载新编译的内核模块时,遇到如下问题(无法卸载模块): 1.rmmod: can't change director
阅读全文
posted @
2017-04-14 13:50
阳光农场皮卡
阅读(636)
推荐(0)
[转载]get_fs()和set_fs()
摘要:其实内核里面也可以用系统调用的,直接用read/write是可以的。但要注意几个问题:一个是要记得编译的时候加上-D__KERNEL_SYSCALLS__另外源文件里面要#include如果报错,很可能是因为使用的缓冲区超过了用户空间的地址范围。一般系统调用会要求你使用的缓冲区不能在内核区。这个可以
阅读全文
posted @
2017-03-21 11:38
阳光农场皮卡
阅读(1559)
推荐(0)
Linux定时器
摘要:参考链接:http://blog.csdn.net/DroidPhone/article/category/1263459 关键字:定时器 高精度定时器 HZ usleep 一、低精度定时器 利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低分辨率定时器,是指这种定时器的计时单位基
阅读全文
posted @
2016-12-08 14:43
阳光农场皮卡
阅读(630)
推荐(0)
sleep 和 usleep的实现方法
摘要:一、sleep 和 usleep 1、不属于系统调用,是glibc 库函数实现的; 2、glibc函数库中通过调用内核的nanosleep实现的; 3、内核nanosleep通过调用 hrtimer_nanosleep 实现(/kernel/hrtime); 二、源码 2.1 usleep (gli
阅读全文
posted @
2016-11-24 10:17
阳光农场皮卡
阅读(3557)
推荐(0)
HZ 和 usleep最小睡眠时间(低精度定时器)
摘要:注:本文论述的情况是内核默认未开启高精度定时器。 不建议这么用,需要较高精度的定时器可参考本博客后面的文章。 一、先上结论 1、默认的HZ是100,usleep的最小时间是10ms; 2、将HZ修改为1000,usleep的最小时间更改为1ms。 二、如何修改HZ 1、在.config中修改CONF
阅读全文
posted @
2016-11-24 09:46
阳光农场皮卡
阅读(1889)
推荐(0)
[转载]linux内核中的HZ介绍
摘要:时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 <Linux/param.h>中定义或该文件包含的某个子平台相关文件中。作为通用的规则,即便如果知道 HZ 的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核
阅读全文
posted @
2016-11-02 11:30
阳光农场皮卡
阅读(1895)
推荐(0)
request_mem_region,ioremap 和phys_to_virt()
摘要:转载: request_mem_region,ioremap 和phys_to_virt() Linux在头文件include/linux/ioport.h中定义了三个对I/O内存资源进行操作的宏:(1)request_mem_region()宏,请求分配指定的I/O内存资源。(2)check_me
阅读全文
posted @
2016-06-30 13:54
阳光农场皮卡
阅读(2336)
推荐(0)
Linux驱动 - SPI驱动 之四 SPI数据传输的队列化
摘要:我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来
阅读全文
posted @
2016-04-22 18:43
阳光农场皮卡
阅读(875)
推荐(0)
Linux驱动 - SPI驱动 之三 SPI控制器驱动
摘要:通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1. 申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2. 配置SPI控制器的工作模式和
阅读全文
posted @
2016-04-22 18:42
阳光农场皮卡
阅读(531)
推荐(0)
[转载]Linux驱动-SPI驱动 之二:SPI通用接口层
摘要:通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了
阅读全文
posted @
2016-04-22 18:41
阳光农场皮卡
阅读(308)
推荐(0)
[转载]Linux驱动-SPI驱动-概述
摘要:转载地址http://blog.csdn.net/droidphone SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是: CS 片选信号 S
阅读全文
posted @
2016-04-22 18:40
阳光农场皮卡
阅读(237)
推荐(0)