2017-2018-1 20155227 20155318 实验四 外设驱动程序设计
2017-12-03 11:21
344 查看
2017-2018-1 20155227 20155318 实验四 外设驱动程序设计
实验目的,实验步骤
实验过程如下。实验四外设驱动程序设计-1
学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章 提交康奈尔笔记的照片(可以多张)
笔记如下:
20155227:
20155318:
实验四外设驱动程序设计-2
在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验 提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)
实验中的问题和解决过程
问题1:在第一步
make clean;make时,出现了Error;
问题1解决:
发现是
makefile有问题,对
makefile进行修改,在每一行指令前加上
“tab”键,成功解决问题。
问题2:
实验所用内核与我的虚拟机内核不同,编译以后显示
insmod error inserting '* .ko':-1 Invalid moudle format。
问题2解决:
解决办法是使用了实验一时所用的虚拟机,内核符合本次试验的要求。
实验过程的一些思考
Linux 的驱动开发调试的两种方法一种是直接编译到内核,再运行新的内核来测试;二是编译为模块的形式,单独加载运行调试。第一种方法效率较低,但在某些场合是唯一的方法。模块方式调试效率很高,它使用
insmod工具将编译的模块直接插入内核,如果出现故障,可以使用
rmmod从内核中卸载模块。不需要重新启动内核,这使驱动调试效率大大提高。
驱动程序与应用程序的区别
应用程序一般有一个
main函数,从头到尾执行一个任务; 驱动程序却不同,它没有 main 函数,通过使用宏
module_init(初始化函数名);将初始化函数加入内核全局初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止等待被应用软件调用。驱动程序中有一个宏
moudule_exit(退出处理函数名)注册退 出处理函数。它在驱动退出时被调用。
应用程序可以和
GLIBC库连接,因此可以包含标准的头文件,比如
<stdio.h> <stdlib.h>,在驱动程序中是不能使用标准 C 库的,因此不能调用所有的 C 库函数,比如输出打印函数只能使用内核的 printk 函数,包含的头文件只能是内核的头文件,比如
<linux/module.h>。
新学到的知识点
在Linux下进行驱动设计的原理掌握使用模块方式进行驱动开发调试的过程
实验体会
本次实验学习了嵌入式linux设备驱动开发的相关知识,并做了详细的笔记,在动手实践的过程中加深了了解。代码托管
参考资料
hqyj.嵌入式Linux应用程序开发标准教程.pdf相关文章推荐
- 2017-2018-1 20155211 实验四 外设驱动程序设计
- 20155229 2017-2018-1 《信息安全系统设计基础》实验四 外设驱动程序设计
- 20155322 2017-2018-1《信息安全系统设计基础》实验四-外设驱动程序设计
- 2017-2018-1 20155306 实验四 外设驱动程序设计
- 2017-2018-1 20155329 实验四 外设驱动程序设计
- 2017-2018-1 20155219 实验四 外设驱动程序设计
- 2017-2018-1 20155314《信息安全系统设计基础》实验四 外设驱动程序设计
- 2017-2018-1 20155338 20155307 20155335 实验四 外设驱动程序设计
- 2017-2018-1 20155315 《信息安全系统设计基础》实验四 外设驱动程序设计
- 2017-2018-1 20155310 20155337《信息安全系统设计基础》实验四外设驱动程序设计
- 2017-2018-1 20155311 实验四 外设驱动程序设计
- 2017-2018-1 20155326 实验四 外设驱动程序设计
- 2017-2018-1 20155209 20155230 实验四 外设驱动程序设计
- 2017-2018-1 20155218 20155205 实验四 外设驱动程序设计
- 2017-2018-1 20155235 20155211 实验四 外设驱动程序设计
- 2017-2018-1 20155336 实验四 外设驱动程序设计
- 2017-2018-1 20155208 20155212 实验四 外设驱动程序设计
- 2017-2018-1 20155220实验四——外设驱动程序设计
- 2017-2018-1 20155321 20155330 《信息安全系统设计基础》实验四——外设驱动程序设计
- 2017-2018-1 20155213 实验四 外设驱动程序设计