- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式驱动开发实验指导书
《嵌入式驱动开发》实验
实验一
实验题目:Linux计算器应用程序及hello驱动程序
实验目的:掌握Linux常用操作命令、熟悉使用vi编程、掌握gcc/makefile编译基本方法
实验类型:设计
实验要求:必修
仪器设备:计算机
实验内容、方法、步骤:
一、编写一个计算器程序,实现菜单显示、加减乘除功能。
要求:1)基于Linux平台开发
2)使用vi编辑器编写
3)使用gcc编译
一.课搭建samba服务器
二.c编程练习(将10个数放入数组,找出最大的一个数,并输出)
二、 编写hello驱动程序,编译后,进行加载、卸载驱动模块以对驱动进行测试。
一.hello.c驱动程序
实验二
实验题目:简单的字符设备驱动程序
实验目的:掌握Makefile文件编写方法;熟悉字符设备驱动程序设计、开发和使用流程;
实验类型:综合
实验要求:必修
仪器设备:计算机
实验内容、方法、步骤:
编写一个简单的字符设备驱动程序,完成下列功能,并写出运行程序后输出的结果。
编写简单的字符设备驱动程序,能够实现对虚拟设备int类型变量的读写操作;
编写Makefile文件,对驱动程序进行编译;
采用动态模块加载方式对驱动程序进行加载,并查看加载前后效果;
编写测试程序,对虚拟设备进行读写操作,对驱动程序功能进行验证。
实验步骤:
使用如下命令创建驱动源程序文件进行编写。
vim globalvar.c
编写相应的Makefile文件。
vim Makefile
3)对驱动程序进行编译、调试,生成globalvar.o目标文件。
make(make clean)
4)加载驱动程序,并查看是否加载成功。
insmod globalvar.o
cat /proc/devices
(卸载模块命令 rmmod globalvar)(注意:无后缀名)
5)编写测试文件globalvartest.c,并进行编译,生成globalvartest.o可执行文件。
6)创建虚拟设备文件。
mknod /dev/globalvar c 253 0
7)运行globalvartest.o,查看、记录并提交结果。
./globalvartest.o
提交代码:
globalvar.c/globalvar.o
Makefile
globalvartest.c/globalvartest.o
测试结果(.jpg文件)
一.globalvar.c驱动程序
测试程序
makefile文件
测试结果
实验三
实验题目:并发控制及中断程序
实验目的:
(1)掌握linux内核中并发控制的方法,学会运用信号量/队列/自旋锁进行内核驱动程序中的并发控制;
(2)掌握中断处理机制原理,学会使用tasklet进行软中断处理。
实验类型:综合
实验要求:必修
仪器设备:计算机
实验内容、方法、步骤:
以简单的字符设备驱动程序globalvar为基础,编写程序完成下列功能,并写出运行程序后输出的结果。
在globalvar驱动程序中,使用自旋锁功能,进行设备打开操作控制。实现已打开的设备不能再被其他用户和进程打开;并编写测试程序进行测试;
在globalvar驱动程序中,使用信号量和队列功能,进行设备读写操作控制。实现:a) 设备不能同时被两个及以上用户和进程打开; b) 且仅能先写入设备,才能进行读取设备操作;c) 编程测试程序进行功能测试;
在globalvar驱动程序中,使用tasklet功能,进行中断处理操作。实现在对设备进行写入操作后,通过中断处理方式,打印信息;并编写测试程序进行测试;
实验步骤:
一,基本操作
使用如下命令创建驱动源程序文件进行编写。
vim globalvar.c
2)编写相应的Makefile文件。
vim Makefile
3)对驱动程序进行编译、调试,生成globalvar.o目标文件。
make(make clean)
4)加载驱动程序,并查看是否加载成功。
insmod globalvar.o
cat /proc/devices
(卸载模块命令 rmmod globalvar)(注意:无后缀名)
5)编写测试文件globalvartest.c,并进行编译,生成globalvartest.o可执行文件。
6)创建虚拟设备文件。
mknod /dev/globalvar c 253 0
7)运行globalvartest.o,查看、记录并提交结果。
./globalvartest.o
二,自旋锁功能
1)定义及初始化:
包括头文件/asm/semaphore.h
static spinlock_t spin = SPIN_LOCK_UNLOCKED;
static int coun
文档评论(0)