并不是 Linux 驱动直接向硬件中的内存写数据, 而是与 本机的 I/0 内存(I/O Memory,位于内核空间进行交互。所谓 1/0 内存是通过各种接口( PCI、 USB、蓝牙、以太网口等〉连接到主机( PC、手机〉的硬件〈网卡、声卡、摄像头等〉在主机内 存中的映射。例如,在 Ubuntu ...
分类:
移动开发 时间:
2016-06-05 23:10:04
阅读次数:
209
编写LED驱动 (1) 创建LED驱动的设备文件 第一步:使用cdev_init函数初始化cdev。 第二步:指定设备号。 第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中。 第四步:使用class_create宏创建struct_class。 第五步:使用device_cre ...
分类:
其他好文 时间:
2016-06-05 22:56:06
阅读次数:
166
LED驱动实现原理是Linux驱动与本机的I/O内存进行交互,连接到主机的硬件在主机内存的映射。 编写驱动程序,先创建led驱动的设备文件: 创建LED驱动的设备文件: 1.使用cdev_init函数初始化cdev; struct cdev { Struct konject kobj; Struct ...
分类:
其他好文 时间:
2016-06-05 22:55:40
阅读次数:
169
创建LED驱动的设备文件 第一步:使用cdev_init函数初始化cdev 第二步:指定设备号。直接在代码指定或动态分配 第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中 第四步:使用class_create宏创建struct class 第五步:使用device_create ...
分类:
移动开发 时间:
2016-06-05 22:44:55
阅读次数:
195
看了本书第七章,我学到了: 1. linux驱动实现原理: linux驱动通过I/O内存向硬件写入数据,I/O内存是通过各种接口连接到主机的硬件在主机内存中的映射。Linux内核提供了多个与I/O内存交互的函数:ioread16、ioread32、iowrite16、iowrite32等。每个连接l ...
分类:
移动开发 时间:
2016-06-05 21:36:21
阅读次数:
209
这一章主要讲了控制发光二极管。 主要学习的内容有,编写驱动,创建LED驱动设备文件的时候:使用cdev_init函数初始化cdev;指定设备号;使用cdev_add函数将字符设备添加到内核中的字符设备数组中;使用class_creat宏创建struct class;使用device_creat函数创 ...
分类:
移动开发 时间:
2016-06-05 21:35:43
阅读次数:
164
第七章 1.不是 Linux 驱动直接向硬件中的内存写数据 , 而是与本机的 I/O内存进行交互 2.控制开发板上的 LED # adb shell ”echo ‘1’> /dev/ s3c6410_leds" 打开第 1 个 LEO,其他的 LED 都关闭 # adb shell ” echo ‘ ...
分类:
其他好文 时间:
2016-06-05 21:33:23
阅读次数:
156
控制发光二极管 本章我们在Linux驱动开发中实践过所以也很熟悉。也做出过不同的实验结果。所以编写LED驱动: 1.测试开发板,打开电源开关 2.创建LED驱动设备文件 3.卸载LED驱动的设备文件 4.设置寄存器与初始化LED驱动 5.控制LED 6.设置LED驱动的模块参数 本章给出了LED驱动 ...
分类:
移动开发 时间:
2016-06-05 21:32:07
阅读次数:
151
今天在学习《Unix环境高级编程》,第七章进程环境给出了一个进程的内存分布示意图,从下往上依次为“正文段->初始化数据->未初始化数据(默认初始化为0)->堆(从低地址到高地址)->栈(从高地址到低地址)->命令行参数和环境变量”。其中的正文段也叫代码段,是可共享的,只读的。 这个时候我就想到上次做 ...
分类:
编程语言 时间:
2016-06-05 21:23:02
阅读次数:
180
在之前章节了解到Linux驱动程序可以控制软硬件,可以实现软硬件之间的交互。在这章我们学习LED驱动的实现原理。Linux内核提供了多个与I/O内存交互的函数可以实现控制硬件。 编写LED驱动,LED驱动会建立一个/dev/s3c6410_leds设备文件,该Linux驱动可以控制4个LED,靠近电 ...
分类:
其他好文 时间:
2016-06-05 21:19:06
阅读次数:
197