第八章 心得体会

通过第八章的学习,了解了蜂鸣器的工作原理以及利用PWM驱动使蜂鸣器发出声音。、

学到的知识:

一、Linux驱动的代码重用

1、编译是由多个文件组成的Linux驱动

如果Linux驱动只有1个源代码文件,0bj-m变量可以和源代码文件同名。如果Linux驱动包含多个文件,就需要使用module-y来指定所以的目标文件。

2、Linux驱动模块的依赖

代码重用分为静态和动态两种。

二、强行卸载Linux驱动

情况1:初始化函数崩溃

情况2:卸载函数被阻塞

三、蜂鸣器(PWM)驱动

1、蜂鸣器驱动的原理

蜂鸣器也称PWM,基本原理是通过脉冲来控制蜂鸣器的打开和停止。

PWM使用端口F的CPFCON寄存器进行控制。改寄存器在linux内核中对应的宏是S3C64XX_GPFCON寄存器寄存器的虚拟地址。GPFCON只用了最高两位来控制PWM。当最高位为10时,打开PWM。当00时,停止PWM。

2、实现蜂鸣器驱动

编译PWM驱动的Makefile文件

obj-m :=pwm_driver.c

pwm_driver-objs :=pwm,o pwm_fun.o

3、测试蜂鸣器驱动

打开PWM

# ./ioctl /dev/pwm_dev 1 0

停止PWM

# ./ioctl /dev/pwm_dev 0 0

时间: 2024-10-17 11:30:56

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

第八章心得体会

通过第八章的学习,我学到了如下知识点: 一.Linux驱动的代码重用 1.编译是由多个文件组成的Linux驱动 如果Linux驱动只有1个源代码文件,0bj-m变量可以和源代码文件同名.如果Linux驱动包含多个文件,就需要使用module-y来指定所以的目标文件. 2.Linux驱动模块的依赖 代码重用分为静态和动态两种. 二.强行卸载Linux驱动 情况1:初始化函数崩溃 情况2:卸载函数被阻塞 三.蜂鸣器(PWM)驱动 1.蜂鸣器驱动的原理 蜂鸣器也称PWM,基本原理是通过脉冲来控制蜂鸣器

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

本章主要讲了Linux代码的重用与强行卸载Linux驱动. (一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数.变量.宏等) 1.编译是由多个文件组成的Linux驱动(静态重用) 对于复杂的Linux驱动,需要使用多个源代码文件存放不同的功能代码,这样做有利于代码分类和管理,那么就不得不编译多个源代码文件,最终生成.ko文件或编译进Linux内核 下面,就介绍将3个.c文件分别编译为3个.o文件,并将这

大道至简-第七、八章-心得体会

“王不如远交而近攻,得寸,则王之寸:得尺,亦王之尺也.” ——<战国策·秦策> “此郎亦管中窥豹,时见一斑.” ——<晋书·王献之转> 从软件开发到现在,每一个成名已久的公司,其中的软件巨头们已经在层出不穷的思想中涅槃了一会又一回了. 软件业界如今的局面,不是一些人(程序员或者评论家们)争争吵吵的结果,而是大公司们相互制衡的结果.Borland与IBM,IBM与SUN,以及SUN与Apple都在做着相同的事情,又都有着相同的算盘.他们一方面打压对手的优势,一方面又借助对手和联盟的力

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

面向对象设计阶段包括体系结构设计.详细设计.用户界面设计和数据库设计等.设计活动划分成系统设计和详细设计.设计原则有模块化(大系统分解成若干小系统).耦合度(两个子系统之间的关联程度,耦合越低越好).内聚性(子系统内部的相关程度,内聚越高越好).复用性.设计模式也是一和复用.软件体系结构设计的好坏是一个系统设计成败的关键.系统设计包括识别设计元素.数据存储策略.部署子系统.系统设计评审.详细设计包括方法建模(需要确定方法的可见性.名称.参数.返回值.构造型).属性建模(需要命名和设置可见性).状

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

Linux 驱动的代码重用有很多种方法.可以采用标准 C程序的方式.将要重用的代码放在其他 的文件 (在头文件中声明〉中. 如果要使用某些功能, include 相应的头文件即可〈这种方式称为 静态重用〉.也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外←个 Linux 驱动中的资源(函数.变量.宏等〉.C或E++语言中编译多个源代码文件时,如果a.c使用 Z b.c文件中的函数,需 :要在 a.c 文件中使用 extern 预先定义 b.i: 中的函数, extern

AngularJS心得体会

AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习Angular的心得体会吧. 首相,使用Angular最大的感受就是它的设计思路完全不同于Jquery,jquery更倾向于对Dom的操作:而使用Angular则需要你有一个全局的认识,你必须知道你想要做成什么样子才可以下手去做,所以我感觉ng对前端开发的要求比jquery要高一些.先来看看Angu

关于软件项目管理的心得体会之一

目的 软件项目管理是一项涉及面较广,但是非常必要的一项技能.相较于软件开发中的其他专业技能, 又更加依赖于实践和阅历.这里想跟各位同仁分享一下自己在过往项目中的心得体会,结合些许耳熟能详的理论,起到抛砖引玉的作用. 局限性 项目管理既然是一门实践科学,所以这里跟大家分享之前,还是要说明局限性.因为我之前是在一家提供软件服务的传统软件公司工作, 所以很多项目的经验都来源于作为乙方的外包项目,同时,大部分项目都是移动相关领域.目前我在一家国内的互联网公司,从事的电商相关的应用项目. 开篇 想跟大家分

编程方法心得体会

编程学习心得和方法(转载,供新手参考)   即便是高级编程人员,像那些为开发软件工作的类库和组件高手,他们也不敢说自己精通每一种语言. 事实就是这样,每一种语言有着它们相似而又不同的语法,它们有着不同的关键字,发展出了各种各样的类库,它们的函数或者方法的声明定义都有不同,更多的差异不为我们所知. 每一种语言,它都有着太多的东西需要我们去理解和记忆,我们没有时间和精力做得太多. 对于初学者,我们最不应该急于求成,更不要试图一次性学习所有语言.事实上,我们可以选取某种语言学习.每一种语言都有着自己的

读《构建之法》的心得体会

读<构建之法>的心得体会 软件工程涉及的范围很广,对于即将投身IT业的学生而言,软件工程的内容又非常重要.读构建之法,尽管本书介绍了不少IT业正在使用的理论和技术,但是,这本书的主要思想并不是介绍所有的新思想和新技术,而是从这些新思想.新技术中总结出对自己在未来的工作中有用的东西. 在整本书中,印象最让我深刻的是“两个人的合作”这一章节.现代的软件产业经过几十年的发展,软件的结构随着用户需求的不断增加,软件的功能不断朝多元化与复杂化发展.不管是两个人的合作还是团队的合作,谈到合作不免提及规范这