驱动代码: 应用层代码: 插入模块: root@plnx_arm:/mnt# insmod mytest.ko ioremap called: phys 0x41200000 -> virt 0xf09f0000 测试设备号: 运行应用程序: ...
分类:
其他好文 时间:
2018-06-12 22:32:33
阅读次数:
349
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为 ...
分类:
其他好文 时间:
2018-05-16 12:51:14
阅读次数:
163
ADC:两种方式:1.自己配置寄存器 2.调用三星封装好的函数,这个要简单一些: 由于我们是初学,在这里我采用第一种方法进行ADC设备驱动的编写: 有很多传感器,都是经过模拟电压来反应传感器的感应值:比如说温度传感器,气体浓度传感器等。 这个要结合中断来进行ADC的值的读取:有两种方式:轮询(忙等) ...
分类:
其他好文 时间:
2018-05-09 23:20:52
阅读次数:
208
一、前言 某天,wowo同学突然来了一句:如果要在start_kernel中点LED,ioremap在什么时间点才能调用呢?我想他应该是想通过点LED灯来调试start_kernel之后的初始化的代码(例如DTB解析部分的代码)。那天,我们两个花了二十分钟的时间,讨论相关的问题,我觉得很有意思,因此 ...
分类:
移动开发 时间:
2018-02-13 23:40:08
阅读次数:
264
我们以高通IPQ4019芯片为例进行一下示例说明step1 在/proc/iomem中看一下iomem_resource的情况[root@Abloomy:~]# cat /proc/iomem060f8800-060f88ff : qscratch_base078af000-078af1ff : m... ...
分类:
系统相关 时间:
2018-01-30 17:04:14
阅读次数:
1193
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为 ...
分类:
其他好文 时间:
2017-09-21 11:20:39
阅读次数:
142
在上一节中已经将驱动程序框架搭建好了 接下来开始写硬件的操作(控制LED): (1)看原理图,确定引脚 (2)看2440手册 (3)写代码(需要使用ioremap()函数映射虚拟地址,在linux中只能使用虚拟地址) (4)修改上一节的测试程序 (5)使用次设备号来控制设备下不同的灯 1.看led引 ...
分类:
其他好文 时间:
2017-09-11 19:46:40
阅读次数:
202
VFIO简介 Documentation/vfio.txt 还是不理解IOMMU、北桥、PCI的MMIO和ioremap file:///C:/Users/shaohefe/Downloads/vt-directed-io-spec.pdf <Intel® Virtualization Techno ...
分类:
其他好文 时间:
2017-06-10 22:28:24
阅读次数:
260
1、首先回顾下之前写的驱动和数据在一起的led驱动代码,代码如下:#include<linux/module.h>
#include<linux/init.h>
#include<linux/leds.h>
#include<asm/io.h> //ioremap和iounmap的头文件 writel等
/**********************************静态映射虚..
分类:
系统相关 时间:
2017-06-01 17:51:42
阅读次数:
228
一.内核查参方式: 1.1 mtd方式 文件形式,待补 1.2 ioremap 驱动+应用,待补 1.3 mtd_debug 软件移植,待补 1.4 fw_printenv 1.4.1 工具生成方法: uboot_source_tree # make ARCH=arm CROSS_COMPILE=a ...
分类:
系统相关 时间:
2017-05-15 18:25:20
阅读次数:
261