第六章感想

     本章主要讲了两个重要的部分一是统计单词个数,二是使用eclipse开发和测试linux驱动程序。

     1.编写linux驱动程序前的准备工作:建立并进入存放linux驱动程序的目录,编写Makefile文件。2.编写linux驱动程序的骨架:printf函数运行在用户空间,printk函数运行在内核空间。安装linux驱动、查看word_count是否成功安装、卸载linux驱动、查看日志信息。3.指定与驱动相关的信息:modinfo word_count.ko查看word_count.ko的信息。

4.册和注销设备文件:

# define DEVICE_NAME wordcount   定义设备文件

Static struct miscdevice misc = {};     描述设备文件的信息

ret = misc_register(&misc);      建立设备文件

misc_deregister(&misc);          移除设备文件

5.回调函数:word_count_readword_count_write函数分别处理从设备文件读数据和向设备文件写数据的操作。两函数中的copy_to_usercopy_from_user函数是将数据从内核空间复制到用户空间或从用户空间复制到内核空间。

6.统计单词数的算法。

7.安装、卸载linux驱动程序。

eclipse开发和测试linux驱动程序:前提是eclipse中安装了CDT插件。

eclipse中单击File-New-Other,选择C Project项,单击next进行相应的设置,例如工程名为word_count,然后Finish建立一个空的C工程。

单击word_count工程右击菜单中的New-Soruce Folder,打开New Soruce Folder对话框,在Folder name文本框中输入src,然后Finish建立保存linux驱动源代码文件的目录。单击src目录,右键单击Import打开对话框,选择File Systemnext,选择word_count.c文件,然后单击Advanced,选择Create links in workspace复选框,单击Finish建立word_count.c文件中的src目录中的连接。

设置include路径:右键word_count工程下的Properties,选中C/C++ General-Paths and Symbols,选中右侧Includes页的GNU C项,单击Add添加路径后OK关闭对话框。打开word_count.c,按住Ctrl,鼠标左键单击某个linux内核函数,就会直接跟踪到linux内核函数的定义部分。

编译linux驱动:利用build.sh脚本编译、安装linux驱动。

测试linux驱动:导入.c文件;设置include路径;建立Target,工程右键Make Target-Create,打开Create Make Target,在Target name中输入工程名后OKBuild工程:Make Targets-Build;运行测试程序,Run As-Local C/C++ Application,运行结果会输出到Console视图中。

时间: 2024-10-11 17:46:14

第六章感想的相关文章

大道至简:软件工程实践者的思想——第六章感想 从编程到工程

从编程到工程 语言只是工具 语言对于一个从事IT相关行业的程序员.技术人员来说,语言仅仅只是工具,从事IT相关行业的人来说,看清楚大的程序来说这一切的开始,就是源于“语言只是工具”! 猿之于为人,“学会制作和使用工具”是最重要的标志,所以从事IT相关行业的我们也被业外的人称为程序猿,当然这里更多的是读音有点相似.因而我不知道“语言只是工具”这句话,究竟是对语言的膜拜,还是漠视.  然而从那一刻开始,我才真正地知道工程.我们学过的吃.#c++\还有现在所学的java,可能有些人说这是几门技术课程,

第四次作业:读软件工程课本五点五、六、七章感想与疑问

第五点五章 这一部分,本来在上一次就已经有过一次浏览,不过也真的只是浏览而已,哈哈,因为介绍了很多模型,看完后,又忘了,现在说要记住这些东西,对于我来时真的不是件容易的事,也可能觉得现在还没有用到这些东西吧,我曾几何时也在课堂上听老师杜给我们说过一些关于软件过程模型的东西,当时隐约记得介绍了八种模型,而重点要掌握的是瀑布模型,快速原型模型,Rational统一过程rup,微软模型.其实我是想知道我们在以后做一个软件时,是不是用期中的一个模型就可以了啊?还是说可以多个模型一起用?但是多个模型一起用

Flask 教程 第十六章:全文搜索

本文翻译自The Flask Mega-Tutorial Part XVI: Full-Text Search 这是Flask Mega-Tutorial系列的第十六部分,我将在其中为Microblog添加全文搜索功能. 本章的目标是为Microblog实现搜索功能,以便用户可以使用自然语言查找有趣的用户动态内容.许多不同类型的网站,都可以使用Google,Bing等搜索引擎来索引所有内容,并通过其搜索API提供搜索结果. 这这方法适用于静态页面较多的的大部分网站,比如论坛. 但在我的应用中,基

数据库系统实现 第六章 查询执行

第六章 查询执行 查询执行也就是操作数据库的算法 一次查询的过程: 查询-->查询编译(第七章)-->查询执行(第六章)-->数据 查询编译预览 查询编译可以分为三个步骤: a)分析:构造分析树,用来表达查询和它的结构 b)查询重写,分析树被转化为初始查询计划,通常是代数表达式,之后初始的查询计划会被优化为一个时间更小的计划 c)物理计划生成,将查询计划转化成物理的计划, 为了选择更好的查询计划,需要判断 1)查询哪一个代数的等价形式是最有效的 2)对选中形式的每一个操作,所使用的算法选

第六章:异常机制

第六章:异常机制 异常的定义 异常:在程序运行过程中出现的意外事件,导致程序中断执行. 异常处理 try...catch 语法:try{ //可能出现异常的代码}catch(异常类型 异常对象名){ //处理异常的代码:}执行过程:当try中的代码异常发生时抛出一个异常对象,该异常对象与catch中异常类型进行匹配,匹配成功进入catch块,否则不执行catch中代码(相当于异常未被处理).程序只有当异常处理成功后才能继续执行. try...catch...catch 语法:try{ //可能出

2017上半年软考 第六章 重要知识点

第六章 项目整体管理 []项目整体管理概述 [][]项目整体管理的含义.作用和过程 项目整体管理6个过程?p264 项目整体管理包括什么? 项目管理的核心是什么? 项目整体管理涉及哪几个方面?p265 [][]项目经理是整合者 项目经理作为整合者要做什么?p265 [][]整体管理的地位 []项目整体管理实现过程 [][]制定项目章程概述 项目章程的意义是什么? 项目章程包括什么? [][]制定项目章程 项目章程的作用? 项目章程的输入? 制定项目章程的工具和技术?p267 项目章程的输出?p2

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片:多对多关系(上)

这章介绍了怎样创建一个新的实体来管理图片,怎样使用HTML窗体来上传图片文件和使用多对多关系来使它们与产品相关,并且怎样来保存图片到文件系统中.这章也介绍了更多复杂的错误处理增加客户端错误到模型中为了把它们显示回给用户.在这章中播种数据库使用的产品图片可能在在第六章的从Apress网页站点下载代码中. 注意:如果你想遵从这章的代码,你必须完成第五章的代码或者从www.apress.com下载第五章的源代码作为一个起点. 创建实体保存图片文件名 这个项目,我们正要使用文件系统在Web项目中存储图片

Linux与云计算——第二阶段Linux服务器架设 第六章:目录Directory服务器架设—FreeIPA

Linux与云计算--第二阶段Linux服务器架设 第六章:目录Directory服务器架设-FreeIPA 1 FreeIPA 配置FreeIPA服务器 Configure IPA Server to share users' account in your local network. [1] Install FreeIPA. [[email protected] ~]# yum -y install ipa-server ipa-server-dns bind bind-dyndb-lda

APUE读书笔记-第六章 系统数据文件和信息

昨天看完了,今天来看看第六章.感觉第六章的内容不是非常重要.简单看看吧 6.2 口令文件 口令文件其实就是/etc文件夹下的passwd文件,但处于安全性的考虑,我们无法直接读取它.就是通过直接限制权限的方式对其进行保护,passwd文件具体权限如下: -rw-r--r-- 1 root root 可以看到只有root用户具有读写权限,与root同组的用户与其他用户仅具有读权限. 不过为了解决以上问题,Linux中给出了一系列数据结构与函数帮助我们操纵口令文件,首先是关键数据结构,定义位于/in