当前位置: 首页 > news >正文

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

      《Android深度探索》第八章讲的是让开发板发出声音:蜂鸣器驱动。Linux驱动的代码重用有很多种方法,可以采用标准C程序的方式,将重用的代码放在其他的文件(在头文件中声明)中,如果要使用某些功能,include相应的头文件即可(这种方式称为静态重用)。也可以使用另外一种动态重用的方式,也就是一个Linux驱动可以使用另外一个Linux驱动中的资源(函数、变量、宏等)。代码重用分为静态和动态两种,静态重用是代码级的重用,也就是将需要重用的代码和使用这些代码的使用者放在一起进行编译,最终生成一个可执行文件或程序库。模块依赖,也称为导出符号,就是“在一个驱动模块里使用另一个驱动模块里的被导出的符号”。在遇到初始化函数崩溃和卸载函数被阻塞的情况时,Linux驱动可能会无法正常卸载,需要强行卸载Linux驱动。蜂鸣器也称为PWM(脉冲宽度调制),基本原理是通过脉冲来控制蜂鸣器的打开和停止。

      通过对第八章的学习,我学会了如何编写程序让开发板发出声音,也掌握了Linux驱动常用的代码重用的方式,代码重用分为静态和动态两种。在遇到初始化函数崩溃和卸载函数被阻塞的情况时,Linux驱动可能会无法正常卸载,需要强行卸载Linux驱动。学会了强行卸载Linux驱动的方法,可免去不断重启机器的痛苦。

转载于:https://www.cnblogs.com/zi-qing/p/5641810.html

相关文章:

  • redis集群部署配置
  • 在互联网时代,你是消费者还是创造者?
  • 面向对象之设计模式大全
  • 关于win10配置MAVEN问题
  • php进阶整理
  • Bootstrap速学教程之简要介绍
  • CentOS如何查看端口是被哪个应用/进程占用
  • MFT的0x10标准属性数据结构
  • 一个简单的AXIS远程调用Web Service示例
  • 用五种以上的方式调试php
  • 使用System.Drawing.Imaging.dll进行图片的合并
  • Java中Collection和Iterator接口
  • ubuntu之修改ls显示颜色
  • FindBugs规则整理
  • python的加密模块(md5,sha,crypt)学习
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • C++11: atomic 头文件
  • EventListener原理
  • golang 发送GET和POST示例
  • input的行数自动增减
  • javascript 总结(常用工具类的封装)
  • JS函数式编程 数组部分风格 ES6版
  • Nacos系列:Nacos的Java SDK使用
  • TypeScript迭代器
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 计算机在识别图像时“看到”了什么?
  • 少走弯路,给Java 1~5 年程序员的建议
  • 双管齐下,VMware的容器新战略
  • 译自由幺半群
  • Spring第一个helloWorld
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #pragma once与条件编译
  • #ubuntu# #git# repository git config --global --add safe.directory
  • ( 10 )MySQL中的外键
  • ()、[]、{}、(())、[[]]命令替换
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (笔试题)分解质因式
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (七)c52学习之旅-中断
  • (学习日记)2024.02.29:UCOSIII第二节
  • ***检测工具之RKHunter AIDE
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core引入性能分析引导优化
  • .NET Core中Emit的使用
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /*在DataTable中更新、删除数据*/
  • /boot 内存空间不够
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...