第八章读后感

一.Linux驱动的代码重用有很多的方法,可以采用标准的C程序的方法将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能,include相应的头文件即可,也可以是另外一种动态重用的方式,也是一个Linux驱动可以使用另外一个Linux驱动中的资源。蜂鸣器是 S3C6410 开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声。学会了pwm的驱动实验,本实验将linux驱动区分成了多个实现文件。学会了编写Makefile文件。知道了linux驱动模块的依赖。通过实验学会了linux驱动常用的代码重用方式及强行卸载linux驱动的方法PWM驱动的实现方式不同于LED,PWM驱动由多个文件组成。大多数Linux驱动的标准实现方式都是这种。一个复杂的驱动不会把所有代码都放在一个文件中。相关的代码会放在相应的文件中,在编译Linux驱动时将这些文件进行联合编译。当开发一个Linux驱动时,在init、exit等函数中发生错误时,Linux驱动可能会安装失败。甚至使用rmmod命令也无法正常地来将LINUX驱动卸载。这时就需要将相应的Linux驱动的内存地址修改,实现对Linux驱动的卸载。

二.Linux驱动代码的重用有两种方式,第一种是静态方式,就是通过include相应的头文件,采用标准C程序的方式。另一种被称为动态重用,使得一个Linux驱动可以使用另一个Linux驱动中的资源。

三.强行卸载Linux驱动。情况1:由于Linux驱动模块的初始化函数进行了某些操作而崩溃,从而导致初始化函数无法正常返回。这种情况的表现是当前Linux驱动模块没有被任何其他的Linux驱动模块使用,但却显示已经被引用了一次。请况2:卸载函数被阻塞。

蜂鸣器驱动。原理:通过脉冲来控制蜂鸣器。先将pwm.c和pwm_fun.c文件编译成pwm.o和pwm_fun.o,然后将这两个*.o文件链接成pwm_driver.o,最后生成ko文件 

http://i.cnblogs.com/EditPosts.aspx?opt=1

 

转载于:https://www.cnblogs.com/zhangyuye/p/5650730.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统基础优化小结

不用root, 添加普通用户,通过sudo授权管理 更改默认的远程ssh服务端口及禁止root用户远程登陆 定时自动更新服务器时间 ntpdate 配置yum更新源,从国内更新源下载安装软件,如啊里云,163等.http://mirrors.aliyun.com…

iOS8 【xcode6中添加pch全局引用文件】

前沿:xcode6中去掉了pch,为了一些琐碎的头文件引用,加快了 编译速度! xcode6之前的版本建项目就自动添加了是这样的:xcode6后的版本要自己手动的添加步骤如下:1) 2)3) $(SRCROOT)/pc…

学习笔记(42):Python实战编程-pyinstaller程序打包

将程序打包可以使得所有Windows带有python虚拟机的电脑进行使用,打包的内容有代码加外部资源(如logo图片等) 步骤: 1)创建程序的代码 2)生成配置文件——用于获得打包的资源,将资源保存在运行程…

[js]BOM篇

一、什么是BOM BOM(Browser Object Model)即浏览器对象模型。BOM提供了独立于内容 而与浏览器窗口进行交互的对象;由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;BOM由一系列相关的对象构成&#x…

透视校正

1、需要解决的问题: 怎么用图像处理的办法将梯形转换为规则的矩形,进行一个视觉的透视校正 2、解决思路: 1)先二值化图像,提取其轮廓(其中使用到填充,形态学知识) 2)…

杂项备忘

svn导出 export LANGzh_CN.UTF-8 && svn --username shuai --password shuai checkout svn://192.168.14.111/safe.qq.com /update/webapps/safe.qq.com mysqlsla --sortc_sum slow.log 本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang…

安装Pywin32后无法正常引用pyd文件

1. 首先在官方下载pywin32 2.下载完成后,无法正常引用pyd文件 3.解决方案: python安装目录\Lib\site-packages\pywin32_system32\* 至 C:\Windows\System32 转载于:https://www.cnblogs.com/MonkeyKingK/p/4731960.html

pyinstaller运行时出现TCLError的错误该怎么办?

1)修改代码后需要重新按照以上步骤进行,尤其不能忘记了修改配置文件的datas 2)必须得先pyi-makespec -F *.py指定要打包的程序,再修改配置文件,再pyinstaller -F *.spec程序打包 3)确保配置文件已经修改成功,即将以下图…

视觉统计计数方案

1、二值化分割 2、形态学 3、距离变换 4、再进行二值化 4、连通区域计算 输入: 输出:printf("统计玉米粒的个数 contours:%d\n",contours);//contours 17

SQL Server 查询表备注信息的语句

--name 字段名称--user_type_id --max_length 最大长度--is_nullable 是否允许空--remark 描述SELECT c.name, c.user_type_id, c.max_length, c.is_nullable, remark ex.value FROM sys.columns c inner JOIN sys.extended_properties ex ON ex.major_id c.object_id…

Filezilla 利用私钥无密码登录

Filezilla是常用的FTP客户端软件,这里介绍一个用私钥进行登录 主机:sftp://yourserver 用户名:yourname 点击“编辑”-“设置”菜单打开设置对话框,找到“连接”-“SFTP”设置项 添加密钥文件(A)”按钮,添加私钥文件,弹出对话框&a…

yo angualr-fullstatck 项目打包部署

yoeman使用grunt进行打包部署,直接运行grunt命令即可,期间会对代码进行检查,如果存在不规范的地方jshint会指定出来. grunt会对静态资源进行打包而且对资源文件名进行了MD5作为版本戳. 1:修改se…

Visual Studio 快捷键使用方法

1、Ctrl k 和 Ctrl F 一起使用可以格式化代码,让其对齐工整。

学习笔记(43):Python实战编程-事件处理简介

立即学习:https://edu.csdn.net/course/play/19711/343105?utm_sourceblogtoedu 事件: 1.概念:就是给组件添加一定的功能,使得单击或者是聚焦时产生一定的反应 2.知识点: 1)给组件绑定事件: 组件名.bind…

浅谈MIPS地址对齐问题

1.什么叫地址对齐? RISC 下使用访存指令读取或写入数据单元时,目标地址必须是所访问之数据单元字节数的整数倍,这个叫做地址对齐。 2.计算机主要的架构分哪两类?及其地址对齐在两者的区别? 计算机主要的架构就分为两类…

海信FW3010-5000H千兆防火墙

海信FW3010-5000H千兆防火墙 ◆处理带宽达到3G; ◆支持1,500,000个并发连接; ◆支持高达25,000个高级访问过滤; ◆真正的千兆硬件平台; ◆双机热备功能; ◆完善的日志信息; ◆支持P2P过滤,多达14种P2P识别; ◆特有的灾难恢复机制; ◆内嵌IDS模块,也可和…

java File类 打印目录树状结构(递归)

import java.io.File;/*** 递归遍历**/ public class FieTree {public static void main(String[] args) {File f new File("D:/java笔记");printFile(f,0);}static void printFile(File file,int level){for(int i0;i<level;i){System.out.print("-")…

C++ vector.insert的用法

insert() 函数有以下三种用法: 在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器, 在指定位置loc前插入num个值为val的元素 在指定位置loc前插入区间[start, end)的所有元素 .&#xff0c;查看源码返回元素的大小个数 原函数 iterator insert(const_iterator…

学习笔记(44):Python实战编程-单击事件

立即学习:https://edu.csdn.net/course/play/19711/343106?utm_sourceblogtoedu 1.单击事件&#xff1a;主要的单击事件是鼠标左键单击事件&#xff0c;一般是与按钮绑定在一起 2.关键代码&#xff1a;这里是以按钮绑定组件单击事件为例&#xff0c;单击的响应是弹出简单的对话…

samba

安装配置samba&#xff1a; 准备工作&#xff1a; 173/udp(NetBIOS) 138/udp 139/tcp 445/tcp 这些端口已经启动。 然后确定selinux已经关闭&#xff08;#getenforce&#xff09;。 一般我们装好系统之后samba都会安装的&#xff1a;yum list all samba* 这里我选用的是samba3x…