电子科大微嵌实验报告四.doc

电子科大微嵌实验报告四.doc

ID:57676784

大小:1.47 MB

页数:7页

时间:2020-08-31

电子科大微嵌实验报告四.doc_第1页
电子科大微嵌实验报告四.doc_第2页
电子科大微嵌实验报告四.doc_第3页
电子科大微嵌实验报告四.doc_第4页
电子科大微嵌实验报告四.doc_第5页
资源描述:

《电子科大微嵌实验报告四.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子科技大学实验报告课程名称微处理器系统与嵌入式系统综合实验实验名称基于ARM的模块方式驱动程序实验任课教师实验教师姓名学号实验地点科B239分组号时间年月日一、实验目的1.掌握Linux系统下设备驱动程序的作用与编写技巧2.掌握Linux驱动程序模块加载和卸载的方法3.了解ps与pl之间的通信方法二、实验内容1.基于ees331开发板编写led驱动程序。2.编写led驱动,修改makefile,并将led驱动动态加载入linux内核中。3.编写关于led的测试程序,交叉编译后运行,控制led灯的亮灭。三、实验步骤1.在vivado里搭建好硬件工程,包括:led

2、、sw和uart模块。(详见实验2)2.搭建好后生成比特流文件,利用SDK软件将fsbl文件、比特流文件、u-boot文件生成boot.bin启动文件。(详见实验2)3.在led目录下,编写led驱动源代码,修改三个部分:1)添加led的地址:/*Modifytheaddresstoyourperipheral*/#defineees331_led_PHY_ADDR/*Modifytheaddresstoyourperipheral*/led驱动的初始化函数为如下:int__initees331_led_init(void){intret;GPIO_Regs=i

3、oremap(ees331_led_PHY_ADDR,32);ret=misc_register(&ees331_led_dev);if(ret){printk("ees331_led:[ERROR]Miscdeviceregisterfailed");returnret;},printk("ees331_led:success!Moduleinitcomplete");iowrite32(255,GPIO_Regs);return0;/*Success*/}2)添加控制函数的代码,如下:staticintees331_led_ioctl(structf

4、ile*filp,unsignedintreg_num,unsignedlongarg){/*Addyourcodehere*///通过led地址给led寄存器赋值/*Addyourcodehere*/return0;}3)在驱动的文件操作结构体添加代码,如下staticconststructfile_operationsees331_led_fops={.owner=THIS_MODULE,/*Addyourcodehere*/.open=,.release=,.read=,.unlocked_ioctl=,/*Addyourcodehere*/};4.打开M

5、akefile文件,修改其中部分,加入交叉编译器和内核源码树目录,如下。ifneq($(KERNELRELEASE),)obj-m:=ees331_led.oelseifeq($(TARGET),)TARGET:=$(shelluname-r)endifPWD:=$(shellpwd)/*Addyourcodehere*/CC=KDIR?=/*Addyourcodehere*/default:@echo$(TARGET)>module.target$(MAKE)-C$(KDIR)SUBDIRS=$(PWD)modulesclean:@rm-f*.ko*.omod

6、ules.orderModule.symvers*.mod.?.ees331_led*.**~@rm-rf.tmp_versionsmodule.targetinstall:ees331_led.koinstall--mode0644ees331_led.ko/lib/modules/$(shellcatmodule.target)/kernel/drivers/char//sbin/depmod-a$(shellcatmodule.target)ees331_led.ko:$(MAKE)endif在需要添加部分加入交叉编译器和内核源码树目录$(CROSS_CO

7、MPILE)gcc、/home/zynq/Downloads/2016.3/linux-xlnx-xilinx-v2016.35.打开一个终端,在led目录下执行make命令,生成.ko驱动模块文件。make6.将测试文件ledtest.c进行交叉编译,(或者在开发板上执行gcc命令),生成可执行文件ledtest,将驱动文件和测试文件放到开发板里。arm-linux-gnueabihf-gccledtest.c-oledtest7.将驱动文件和测试文件通过网线拷贝到开发板SD里:scpzynq@192.168.1.12:/home/zynq/driver_co

8、de/led/ledte

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

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

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