实验二三合_教学案例设计_教学研究_教育专区

实验二三合_教学案例设计_教学研究_教育专区

ID:43537217

大小:333.89 KB

页数:19页

时间:2019-10-10

实验二三合_教学案例设计_教学研究_教育专区_第1页
实验二三合_教学案例设计_教学研究_教育专区_第2页
实验二三合_教学案例设计_教学研究_教育专区_第3页
实验二三合_教学案例设计_教学研究_教育专区_第4页
实验二三合_教学案例设计_教学研究_教育专区_第5页
资源描述:

《实验二三合_教学案例设计_教学研究_教育专区》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、SouthChinaUniversityofTechnology嵌入式系统实验报告嵌入式Linux设备驱动实验学院电子与信息学院专业电子科学与技术学生姓名李泓鑫黄勇实验台号2指导教师高学提交日期2015年4月22日、实验目的1.T解Linux驱动程序的结构2.初步掌握Linux驱动程序的编写方法及过程3.掌握Linux驱动程序的加载方法。二、实验内容1.杂项驱动框架的编程实现;2.具有Led控制功能的驱动编程实现;三、实验原理要写led的设备驱动,首先要了解英硕件电路的设计,才能使Z正常工作。从Tiny210的用户手册中,我们可以找到其led的设计说

2、明。由此,我们明确LED广LED4分别由GPJ2_0~GPJ2_3这四个io引脚来控制。并且由Tiny210的用书手册说明,可知此GPIO输出是低电平有效。当GPJ作为输出io口的时候,GPJO~GPJ3的输出,对应于此数据寄存器(0xE0200284)的bitO~bit3・在这四个bits上,0对应于输出低电平,会使对应的led点亮;1对应于输出高电平,会使对应的led熄灭。杂项设备是比较简单的字符设备,主设备固定为10,次设备号由lirmx内核分配。不需手动创建设备节点,注册和注销设备都比较简单。框架屮,定义了内核模块入口函数TestCharin

3、it和出口函数TestCharexit分别进行杂项设备的注册miscregister和注¥肖misederegister。file_opcrations定义了此设备的操作接I—I,只定义了读和写两个接口函数,分别为TestRead和TestWrite。这两个函数中,把一个内部整型全局变量myData和用户进行拷贝传递。测试程序会打开TestMisc设备,然后读取该设备,再写入该设备,并进行打印显示。四、实验步骤1、杂项设备是比较简单的字符设备。主设备固定为10,次设备号由linux内核分配。不需手动创建设备节点。注册和注销设备都比较简单。比较适合用于

4、led驱动。2、首先我们编写朵项设备驱动模块框架在此框架中,定义了内核模块入口函数TestChar_init和出口函数TestCharexito这两个函数屮,分别进行杂项设备的注册miscregister和注销miscdercgistcro这里需要用到miscdcvicc结构体,其实例misc定义为由内核分配次设备号(MISC_DYNAMIC_MINOR),并且定义了设备名称(DEV_NA1E)和对应的f订e_operationso而f订e_operations定义了此设备的操作接口,只定义了读和写两个接口函数,分别为TestRead和TestWr

5、ite。这两个函数屮,把一个内部整型全局变量myData和用户进行拷贝传递。3、另外写测试程序这个测试程序会打开TeslMisc设备,然后读取该设备,再写入该设备,并进行打印显示。4、Tiny210杂项设备led欤动的实现在前述杂项设备的基础上,我们设计实现led驱动。这里需要做的工作有:1)在杂项设备驱动入口中,进行led硬件的初始化,即GPJ2输岀端口控制寄存器的配置;我们采取的办法是先读取GPJ2CON寄存器的值,然后将低16位改为0xllll,然后再写回。初始化后,已经可以通过GPJ2DAT寄存器来输岀高电平或者低电平。2)完善file_op

6、erations的接口函数read,write和ioctl,使之达到一定控制效果。这里主要通过ioctl來控制。五、程序说明(1)、hellomodule模块实验屮,在使用命令MakeZ后,程序自动编译得到一个・ko文件,从超级终端将文件发送至实验板,然后用insmod加载此驱动文件,可以看到与代码中设定的显示内容相应地提示,出此可以说明此驱动正常地被加载;(1)、在杂项驱动实验屮,在使用命令MakeZ后,得到一个・ko文件,以及一个arm版的可执行的test文件;此驱动文件的作用是记录每次的输入并累加起來写入储存器;加载此驱动以后,我们可以通过生成

7、的可执行测试文件來输入数字,进行测试,而且需要对arm文件进行授权,对test文件进行卸载和安装。(2)、在Tiny210—LED实验中,在运行命令Make之后,得到一个.ko文件,以及一个实验板的可执行测试文件;此驱动文件可以根据预先设定的输入来控制实验板上led灯的亮灭情况;AhelloModule.c*/ttinclude〈lirmx/init.h>#inelude〈linux/module.h>ttincludeMODULE_LICENSE(,zDualBSD/GPL");staticint_inithello

8、_init(void){—"printk(,zhello1ihongxinhuangyong!from

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

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

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