2017-2018-1 20155213 实验四 外设驱动程序设计

2017-2018-1 20155213 实验四 外设驱动程序设计

实验目的

1、学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
2、在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
3、提交编译,加载模块,卸载模块,测试运行的截图

实验任务

任务一

  • 学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
  • 提交康奈尔笔记的照片(可以多张)

**笔记照片** ![](https://images2018.cnblogs.com/blog/1071611/201712/1071611-20171203181303507-1870778680.jpg)


任务二

  • 在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
  • 提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

**要点** * 本部分就是敲代码,理解最基础的kernel编程。 * 代码不必要自己敲,因为pdf首页写着,有赠送光盘贴有代码,所以买了本书,也就解决了敲代码问题。

**截图如下** ![](https://images2018.cnblogs.com/blog/1071611/201712/1071611-20171203181336491-1241910071.png) ![](https://images2018.cnblogs.com/blog/1071611/201712/1071611-20171203181345022-181087564.jpg)

任务三

  • 在实验箱中通过交叉编译完成test实验

  • 提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

  • 未完成(老师叫停)

出现的问题及解决

PS:需要注意,一定在实验一的虚拟机上做,因为那里面的环境已经搭好了,不然很难成功。

  • 问题一,insmod:error inserting './test_drv.ko':-1 Operation not permitted

  • 问题一解决:上面的意思是操作没有被允许,即是权限问题,加上一个sudo就好了。

  • 问题二,chgrp:无效的组:"david"

  • 问题二解决:上面的意思很明显,就是david是无效组,将test_drv_load里面的组改为自己linux所在组就好了。

  • 问题三:ERROR:Removing 'test_drv':Device or resource busy

  • 问题三解决:百度了很久没能找到好的解决方法,就只能从原理上解决了,但可以使用unload里面的指令直接强制删除test_dev文件,然后重启虚拟机就可以了,因为其中rmmod的test_drv是存在proc里面的,而proc是只存在与内存中的,使所以重启后,自然没了,从而解决问题。

百度的帮助网站

posted on 2017-12-03 18:16  20155213陆忠民  阅读(298)  评论(0编辑  收藏  举报