第七章LED将为我闪烁:控制发光二级管 读书笔记

一、LED驱动的实现原理

Linux驱动与硬件交互的原理:Linux驱动与I/O内存通过ioread30和iowrite32函数交互;I/O内存与硬件,内存管理模块负责同步I/O内存与硬件中德数据。

二、编写LED驱动

其中1表示开、0表示关。当字符串长度不足4个,相当于后面补0

1.创建LED驱动的设备文件

(1)使用cdev_init函数初始化cdev

(2)指定设备号

Linux设备文件的设备号分为主设备号和次设备号,前12位主设备号,后20位表示次设备号。

设备号指定方法:直接在代码中指定(硬编码),动态分配

多个Linux设备文件可以拥有同一个主设备号。但两个设备的主设备号和次设备号不都能一样。

(3)使用cdev_add函数将字符设备添加到内核中德字符设备数组中

(4)使用class_create宏创建struct class

(5)使用device_create函数创建设备文件

2.卸载Led驱动的设备文件

依次调用三个方法:

Void device_destroy(struct class *class,dev_t devt)

Void class_destroy(struct class *cls)

Void unregister_chrdev_region(dev_t from,unsigned count)

3.设置寄存器与初始化LED驱动

4.控制LED

(1)通过字符串控制LED

(2)通过I/O命令控制LED

5.LED驱动的模块参数

如果Linux驱动中有多个模块参数,需要将这些参数用单引号或双引号括起来

三、测试led驱动

1.编写测试I/O控制命令的通用程序

2.使用NDK测试LED驱动

3.使用Java测试led驱动

四、LED驱动的移植

时间: 2024-07-31 00:52:36

第七章LED将为我闪烁:控制发光二级管 读书笔记的相关文章

Android深度探索(卷1)HAL与驱动开发 第七章 LED将为我闪烁:控制发光二极管

第七章  LED将为我闪烁:控制发光二极管 读书心得    LED驱动的实现原理 尽管Linux驱动程序直接与硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互. 编写LED驱动 测试LED驱动 LED驱动的移植 在修改Linux驱动的源代码时,应尽量不要修改Linux驱动的借口. LED驱动是本书第一个真正和硬件打交道的Linux驱动,虽然LED驱动并不复杂,只是控制了四个LED,但是LED驱动已经包括了Linux驱动所有必要的部分.一个完整的Linux

第七章LED将为我闪烁:控制发光二极管

简单的LED程序主要步骤如下:一:首先创建led驱动的设备文件1.使用cdev_init函数初始化cdev2.指定设备号3.使用cdev_add函数将字符设备添加到内核中的字符设备数组中4.使用class_create宏创建struct_class5.使用device_create函数创建设备文件二:卸载LED驱动的设备文件三:设置寄存器与初始化LED驱动四:控制LED(及所谓的代码编写——linuxC语言)举例一种实现方法,如下:混杂设备驱动中需要实现的是填充file_operations结构

第七章 LED将为我闪烁:控制发光二极管

该Linux驱动用来控制开发板上的4个LED灯,即通过向Linux驱动发送数据可以控制LED灯的开关.LED驱动提供两种交互方式:命令和读写设备文件. 测试LED驱动之前需用USB线连接开发板,然后打开开发板.成功启动后,执行build.sh脚本文件编译和安装LED驱动.build.sh脚本文件会自动将s3c6410_leds.ko文件上传到开发板并安装.LED驱动只能在开发板上安装,build.sh执行了build_s3c6410.sh脚本文件进行编译和安装.LED驱动会建立一个/dev/s3

第七章 LED将为我闪烁:控制发光二级管

LED驱动开发实验 如图所示,LED1-LED2 分别与GPC0_3.GPC0_4 相连,通过GPC0_3.GPC0_4 引脚的高低电平来控制三极管的导通性,从而控制LED 的亮灭. 根据三极管的特性,当这几个引脚输出高电平时,集电极和发射极导通,发光二极管点亮:反之,发光二极管熄灭.通过控制GPC0CON 和GPC0DAT 来控制GPC0_3 和GPC0_4 对应的LED. 将[光盘:实验资料\3. Linux 操作系统移植部分\移植全新的Linux3.2 内核到开发平台\1 Linux 内核

Android深度探索(卷1)HAL与驱动开发 第七章 LED将为我闪烁:控制发光二极管 读书笔记

本章的实验将会实现真正意义上的Linux驱动,会实现直接与硬件的交互.需要控制4个LED灯. 7.1LED驱动的实现原理 事实上并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互.I/O内存是通过各种接口连接到主机的硬件在主机内存中的映射. 7.2编写LED驱动 1.创建LED驱动的设备文件 (1).使用cdev_init函数初始化cdev (2).指定设备号 (3).使用cdev_add函数将字符设备添加到内核中的字符设备数组中. (4)使用class_create宏

第七章 LED将为我闪烁:控制发光二极管 心得笔记

一.LED驱动的实现原理.Linux驱动不是直接向硬件中的内存写数据,而是与本机的I/O内存交互,Linux内核提供了多个与I/O内存交互的函数,每个连接Linux的硬件在I/O内存中都会有映射首地址,开发板上的LED等也有其映射首地址. 二.编写LED驱动,步骤如下: 1.测试开发板,打开电源开关 2.创建LED驱动设备文件 1>使用cdev_init函数初始化cdev. 2>指定设备号:用1个int类型表示Linux设备文件的设备号,前12位表示主设备号,后20位表示次设备号设备号有两种指

第七章 LED 将为我闪烁: 控帘 j发光二级管

一 .LED驱动的实现原理 尽管Linux驱动直接与硬件打交道,但并不是Linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互.每一个连接Linux的硬件在I/O内存中都会有映射首地址,开发板上的LED也有其映射首地址. 二 .编写LED驱动 第一步:使用cdev_init函数初始化cdev , 描述设备文件 struct cdev{ struct kobject kobj;    //封装设备文件的对象 struct module *owner;   //指向内核模块的指针 c

七、LED将为我闪烁:控制发光二级管 ——学习笔记

第七章LED将为我闪烁:控制发光二级管 ——学习笔记 1.LED驱动的实现原理 Linux驱动与硬件交互的原理:Linux驱动与I/O内存通过ioread30和iowrite32函数交互:I/O内存与硬件,内存管理模块负责同步I/O内存与硬件中德数据. 解释:尽管 Linux 驱动直接与硬件打交道,但并不是 Linux 驱动直接向硬件中的内存写数据 而是与 本机的 I/0 内存(νO Memory ,位于内核空间〉进行交互.所谓 1/0 内存是通过各种接口(PCI . USB .蓝牙.以太网口等

第七章 LED将为我们闪烁:控制发光二极管

 第七章 LED将为我们闪烁:控制发光二极管 本章我们将会看到一个完整的linux驱动程序,通过linux驱动程序控制LED的四个小灯,通俗的说就是通过向linux驱动程序来控制LED小灯的开关.用到了几个LED代码文件路径:随书光盘.虚拟环境两个. 一.LED驱动的实现原理:linux驱动与硬件打交道的方式是与本届的I/O内存进行交互,而这里所说的I/O内存就是通过各种接口(PCI.USB.蓝牙.以太网接口等)连接到(PC.手机)的硬件(网卡.摄像头等)在主机上的映射,然后进行硬件交互. 二.