一:led内核驱动 (1)在编写led内核驱动时,我们首先要进行内核裁剪,因为友善之臂将LED灯的驱动默认加载到内核中,所以编写模块驱动程序前就要先把原先的LED灯驱动裁剪掉; led驱动在源码里面的Device Drivers /Character devices目录下,进行完裁剪之后重新...
分类:
系统相关 时间:
2015-09-12 14:45:58
阅读次数:
267
转自:http://blog.csdn.net/junllee/article/details/7415732内存映射 对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的.....
分类:
其他好文 时间:
2015-08-25 15:41:38
阅读次数:
171
转自:http://blog.csdn.net/lanyang123456/article/details/7403514几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址...
分类:
系统相关 时间:
2015-08-25 13:43:17
阅读次数:
226
ioremap 函数来映射到内核地址空间,然后修改虚拟地址空间达到控制寄存器的状态。
我用如下方法操作一个地址为0x56000020的端口...
分类:
其他好文 时间:
2015-07-23 23:51:13
阅读次数:
149
一:ioremap 在内核中有关与物理地址到虚拟地址的映射全都是有mmu,统一开启,而物理地址到虚拟地址的映射关系全都存在一张对应的表格里面,这张表,在开启mmu的时候一起建好,比如在建表的时候是将物理地址0x11111111映射到44444444,那么问题就是: 比如以后我们如果要将0x11...
分类:
系统相关 时间:
2015-05-23 12:57:29
阅读次数:
390
一、首先获取一块物理上连续的物理内存
有多种方法。
(a)通过kernel命令行参数预留一些内存
这种方法,适合于需要大块的物理连续的内存。
假设物理内存总量为256M。命令行参数中,指定 mem=224M。即只让内核使用前224M内存,忽略其余的内存。
这样,我们就有了32M的内存可用,内存起始物理地址为224*1024*1024。
在内核态,通过ioremap,就可以将此物理地址处...
分类:
其他好文 时间:
2015-03-17 20:18:43
阅读次数:
169
一. list_head常用接口: | 二. proc文件系统相关操作: | 三. gpio_request相关操作: | 四. ioremap相关操作: | 五. LED驱动写法: | 六. 测试LED驱动: |
分类:
其他好文 时间:
2015-03-11 21:19:56
阅读次数:
242
20150223 IMX257 LED驱动程序实现 2015-02-23 李海沿由于昨天对IMX257的地址分配不了解,所以前面只能用s3c24xx的驱动程序来了解ioremap等对IO端口的工作原理。但是经过昨晚对IMX257芯片的细细梳理,今天早上起来又把IMX257的芯片资料看了一遍,终于成功...
分类:
其他好文 时间:
2015-02-23 11:59:57
阅读次数:
220
采用非平台方式进行配置GPIO引脚
采用非平台方式进行配置gpio引脚,是直接对其gpio组寄存器进行读写。由于不能直接对寄存器物理地址进行操作,所有需要利用ioremap将gpio寄存器的物理地址映射成虚拟地址
写寄存器:writel(value,对应寄存器的虚拟地址);
读寄存器:value = readl(对应寄存器的虚拟地址);
采用tcc893x平台方式进行配置GPIO引脚
t...
分类:
系统相关 时间:
2014-12-24 10:00:20
阅读次数:
371
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:(1)I/O映射方式(I/O-mapped)典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I...
分类:
系统相关 时间:
2014-12-08 21:03:19
阅读次数:
365