第七章 心得体会

通过第七章的学习,使自己对驱动程序的认识更加深刻,LED灯的驱动程序帮我我学到很多,还学会了驱动的移植。

学到的知识:

一、编写LED驱动

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

第一步:使用cdev_init函数初始化cdev

leds_cdev.owner = TRIS_MODULE;

第二步:指定设备号

设备号指定方法:1.直接在代码中指定;2.动态分配。

第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中

第四步:使用class_create宏创建struct class

第五步:使用device_create函数创建设备文件

device_create(ldes_class, NULL, dev_number, NULL, DEVICE_NAME);

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驱动

LED的两个引脚:GPB0和GPB1

4、控制LED

1.通过字符串控制LED

2.通过I/O命令控制LED

5、LED驱动的模块参数

使用module_param宏指定模块参数

6、LED驱动的完整代码

二、测试LED驱动

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

LED与设备文件交互的方式:直接写入字符串数据和I/O控制命令。

执行ioctl命令的语法格式:

ioctl <设备文件> <cmd> <arg>

2、使用NDK测试LED驱动

3、使用Java测试LED驱动

三、LED驱动的移植

移植Linux驱动时,在修改Linux驱动的源代码时,应尽量不修改Linux驱动的接口。

时间: 2024-08-02 12:20:21

第七章 心得体会的相关文章

《Android》深度探索第七章心得体会

第七章简述了另外一个驱动程序:LED灯的控制 1.创建LED驱动的设备文件: 第1步:使用cdev_init函数初始化cdev: 第2步:指定设备号,分为两种指定方法 第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中: 第4步:使用class_create宏创建struct class: 第5步:使用device_create函数创建设备文件. 2.卸载LED驱动的设备文件 关键代码: void device_destory(sruct class *class,dev_t

安卓移植和驱动开发第七章心得体会

第七章 Led为我闪烁 尽管 Linux 驱动直接与硬件打交道,但并不是 Linux 驱动直接向硬件中的内存写数据, 而是与本机的内存(νO Memory,位于内核空间〉进行交互.所谓 1/0 内存是通过各种接口(PCI.USB.蓝牙.以太网口等〉连接到主机( PC.手机〉的硬件〈网卡.声卡.摄像头等〉在主机内 存中的映射.例如,在 Ubuntu Linux 上运行的驱动只需要访问运行 Ubuntu Linux 的主机中的内存即可,然后Linux内核会利1/0内存中的数据硬件交互. 如果在不同L

《Android深度探索》第七章心得体会

<Android深度探索>第七章讲的是LED将为我闪烁:控制发光二极管.1.创建LED驱动的设备文件:第1步:使用cdev_init函数初始化cdev:第2步:指定设备号,Linux设备文件的设备号分为主设备号和次设备号.设备号有直接在代码中指定和动态分配两种指定方法:第3步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中:第4步:使用class_create宏创建struct class:第5步:使用device_create函数创建设备文件.2.卸载LED驱动的设备文件,需

第七章心得体会

本章讲了控制发光二极管.Led驱动已经包括了linux驱动所有必要的部分. 一个完整的linux驱动主要由内部处理和与硬件交互两部分组成.其中内部 处理主要是指linux驱动的装载.卸载.与设备文件相关的动作处理以及业 务逻辑等.与硬件交互主要是指通过ioweite.ioread32等函数与硬件中 的寄存器进行数据的交互.Linux驱动在不同平台的移植也是处理这两部分 .如果在不同Linux内核版本之间的移植,主要是移植第1部分,如果在不 同硬件平台的移植,主要是移植第二部分.当然,在一些情况下

阅读《软件工程—理论方法与实践》第七章心得体会

面向对象的分析模型有功能模型(用例.场景).分析对象模型(类图.对象图).动态模型(状态图.顺序图).识别分析类提供了发现过界类.控制类和实体类的试探途径,但运用这种方法依然需要开发人员的丰富经验.边界类来自参与者的信息,这些信息可以被实体类和控制类使用.控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消.实体类通常是用例中的参与对象,对应着现实世界中的”事物”.面向对象分析要进行交互行为,并进行建立分析类图,最后评审分析模型.

Android深度探索-卷1第七章心得体会

创建LED驱动的设备文件 第一步:使用cdev_init函数初始化cdev 第二步:指定设备号.直接在代码指定或动态分配 第三步:使用cdev_add函数将字符设备添加到内核中的字符设备数组中 第四步:使用class_create宏创建struct class 第五步:使用device_create函数创建设备文件 卸载LED驱动的设备文件 需要依次调用device_destroy.class_destroy和unregister_chrdev_region方法 void device_dest

《Android深度探索》(卷1)HAL与驱动开发 第七章心得体会

驱动的移植. 在drivers/char 目录下,我们建立一个驱动程序文件mini2440_leds.c,内容如下: <span style="font-size: 18px;">#include <linux/miscdevice.h>#include <linux/delay.h>#include <asm/irq.h>#include <mach/regs-gpio.h>#include <mach/hardwar

第六七章学习体会-----(第六次)

在这周我看了第六章敏捷流程跟第七章MSF.并有了以下学习总结. 敏捷这个词听起来就是反应灵敏迅速而有效,而在软件按工程里,敏捷不同于现有做法之处在于,敏捷的价值观和流程是个人和交流.可用的软件.与客户合作.响应变化,而现有做法的则是流程和工具.完备的文档.为合同谈判.执行原定计划敏捷的开发原则是尽早并持续交付有价值的软件以满足顾客需求.只有不断关注技术和设计,才能越来越敏捷.只有能自我管理的团队才能创造优秀的架构.需求和设计.敏捷开发的原则很多,其中印象最深的就是"经常发布可用的软件,发布间隔

阅读《软件工程—理论方法与实践》第四章心得体会

阅读第四章所得体会.软件需求是决定软件开发是否成功的一个关键因素.开发人员应当学会正确地理解软件需求,实行开非完善但是高质量的需求开发和管理,最大限度地降低软件需求风险.软件需求可以划分为业务需求(定义了项目的远景和范围).用户需求(使用该系统需要完成的任务).系统需求.功能需求(说明了需要开发实现的功能)和非功能需求(功能需求的补充)等型.需求工程是应用已证实有效的原理和方法,并通过合适的工具和符号,系统地描述出待开发系统及其行为特征和相关约束,其过程包括需求获取.需求分析.需求规格说明.需求