嵌入式驱动开发实验指导书

嵌入式驱动开发实验指导书

ID:13710471

大小:1.86 MB

页数:41页

时间:2018-07-24

嵌入式驱动开发实验指导书_第1页
嵌入式驱动开发实验指导书_第2页
嵌入式驱动开发实验指导书_第3页
嵌入式驱动开发实验指导书_第4页
嵌入式驱动开发实验指导书_第5页
资源描述:

《嵌入式驱动开发实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《嵌入式驱动开发》实验实验一实验题目:Linux计算器应用程序及hello驱动程序实验目的:掌握Linux常用操作命令、熟悉使用vi编程、掌握gcc/makefile编译基本方法实验类型:设计实验要求:必修仪器设备:计算机实验内容、方法、步骤:一、编写一个计算器程序,实现菜单显示、加减乘除功能。要求:1)基于Linux平台开发2)使用vi编辑器编写3)使用gcc编译一.课搭建samba服务器二.c编程练习(将10个数放入数组,找出最大的一个数,并输出)二、编写hello驱动程序,编译后,进行加载

2、、卸载驱动模块以对驱动进行测试。一.hello.c驱动程序实验二实验题目:简单的字符设备驱动程序实验目的:掌握Makefile文件编写方法;熟悉字符设备驱动程序设计、开发和使用流程;实验类型:综合实验要求:必修仪器设备:计算机实验内容、方法、步骤:编写一个简单的字符设备驱动程序,完成下列功能,并写出运行程序后输出的结果。1)编写简单的字符设备驱动程序,能够实现对虚拟设备int类型变量的读写操作;1)编写Makefile文件,对驱动程序进行编译;2)采用动态模块加载方式对驱动程序进行加载,并查看加

3、载前后效果;3)编写测试程序,对虚拟设备进行读写操作,对驱动程序功能进行验证。实验步骤:1)使用如下命令创建驱动源程序文件进行编写。vimglobalvar.c2)编写相应的Makefile文件。vimMakefile3)对驱动程序进行编译、调试,生成globalvar.o目标文件。make(makeclean)4)加载驱动程序,并查看是否加载成功。insmodglobalvar.ocat/proc/devices(卸载模块命令rmmodglobalvar)(注意:无后缀名)5)编写测试文件gl

4、obalvartest.c,并进行编译,生成globalvartest.o可执行文件。6)创建虚拟设备文件。mknod/dev/globalvarc25307)运行globalvartest.o,查看、记录并提交结果。./globalvartest.o提交代码:1)globalvar.c/globalvar.o2)Makefile3)globalvartest.c/globalvartest.o4)测试结果(.jpg文件)一.globalvar.c驱动程序测试程序makefile文件测试结果实验

5、三实验题目:并发控制及中断程序实验目的:(1)掌握linux内核中并发控制的方法,学会运用信号量/队列/自旋锁进行内核驱动程序中的并发控制;(2)掌握中断处理机制原理,学会使用tasklet进行软中断处理。实验类型:综合实验要求:必修仪器设备:计算机实验内容、方法、步骤:以简单的字符设备驱动程序globalvar为基础,编写程序完成下列功能,并写出运行程序后输出的结果。1)在globalvar驱动程序中,使用自旋锁功能,进行设备打开操作控制。实现已打开的设备不能再被其他用户和进程打开;并编写测试

6、程序进行测试;2)在globalvar驱动程序中,使用信号量和队列功能,进行设备读写操作控制。实现:a)设备不能同时被两个及以上用户和进程打开;b)且仅能先写入设备,才能进行读取设备操作;c)编程测试程序进行功能测试;3)在globalvar驱动程序中,使用tasklet功能,进行中断处理操作。实现在对设备进行写入操作后,通过中断处理方式,打印信息;并编写测试程序进行测试;实验步骤:一,基本操作1)使用如下命令创建驱动源程序文件进行编写。vimglobalvar.c2)编写相应的Makefile

7、文件。vimMakefile3)对驱动程序进行编译、调试,生成globalvar.o目标文件。make(makeclean)4)加载驱动程序,并查看是否加载成功。insmodglobalvar.ocat/proc/devices(卸载模块命令rmmodglobalvar)(注意:无后缀名)5)编写测试文件globalvartest.c,并进行编译,生成globalvartest.o可执行文件。6)创建虚拟设备文件。mknod/dev/globalvarc25307)运行globalvartest

8、.o,查看、记录并提交结果。./globalvartest.o二,自旋锁功能1)定义及初始化:包括头文件/asm/semaphore.hstaticspinlock_tspin=SPIN_LOCK_UNLOCKED;staticintcount=0;2)获取自旋锁在globalvar_open()中获取自旋锁,spin_lock(&spin);3)释放自旋锁在globalvar_open()中释放自旋锁,if(count){spin_unlock(&spin);return–EBUSY;}cou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。