嵌入式linux应用程序开发实验报告-期末作业

嵌入式linux应用程序开发实验报告-期末作业

ID:25256450

大小:4.50 MB

页数:20页

时间:2018-11-19

嵌入式linux应用程序开发实验报告-期末作业_第1页
嵌入式linux应用程序开发实验报告-期末作业_第2页
嵌入式linux应用程序开发实验报告-期末作业_第3页
嵌入式linux应用程序开发实验报告-期末作业_第4页
嵌入式linux应用程序开发实验报告-期末作业_第5页
资源描述:

《嵌入式linux应用程序开发实验报告-期末作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件学院大作业设计报告课程名称:嵌入式Linux应用程序开发题目:基于UP-CUP2440平台的驱动程序开发和QT程序开发专业:计算机软件班级:计算机软件111班姓名学号:鲁飞8000611038卢惠民8000611021戚成林8000611032慕一聪8000611018刘备8000611006任课教师:李岚职称:副教授完成时间:2014年6月11日20目录一、小组成员分工2二、实验任务2三、主要仪器设备及耗材3四、实验步骤3一、驱动31.基本知识:32.实验原理:43.具体实现:4二、QT计算器91.QT程序设计92.虚拟机下进行编译:

2、153.下载到开发板上运行:17六、实验数据及处理结果18七、思考讨论题或体会或对改进实验的建议18八、参考资料:2020一、小组成员分工分工:鲁飞:QT设计与设计报告卢惠民:QT设计与设计报告戚成琳:驱动与设计报告慕一聪、刘备:设计报告二、实验任务1.编写基于UP-CUP2440硬件平台的GPIO驱动程序必选功能:使中断按键按下后,开发板上的LED灯能作如下闪动:a)连续性闪动,跑马灯:如:1-2-3-1-2-3…或3-2-1-3-2-1b)间隔性闪动:如:1-3-2-1-3-2…或3-1-2-3-1-2…进阶功能:改变中断按键的控制功能

3、,使中断按键按下后,LED灯不断闪亮,再次按下后,LED灯灭。2.QT计算器三、主要仪器设备及耗材PC,WindowsXp,H-JTAG,H-Flasher,DNW,开发实验箱。四、实验步骤一、驱动思路:前后台思想:在中断模块中设置一个计数的变量,每一次中断计数器加一。然后在GPIO驱动模块的ioctl()函数中分情况使跑马灯按要求闪动或熄灭。201.基本知识:(1)设备驱动程序可以使用模块的方式动态加载到内核中去。(2)模块的必需组成部分:模块加载函数,insmod时调用。模块卸载函数,rmmod时调用模块许可证LICENSE说明(3)数

4、据结构file_operation中定义驱动程序会使用的函数。(4)在获得了系统分配的设备号之后,必须要通过注册才能实现设备号和驱动程序之间的关联。(5)打开设备和释放设备,没什么要特别注意的。(6)读写设备:把内核空间的数据复制到用户空间去,或者从用户空间复制到内核空间。read()里面使用copy_to_user()就可以将内核空间的值传到用户空间去。这一点在本实验的驱动程序的实现中起着至关重要的作用。(7)ioctl()则是对IO寄存器的控制,在本实验中就要用ioctl()来实现不同的跑马灯亮灭。2.实验原理:203.具体实现:(一)

5、中断驱动模块:该模块只需在老师给的实例的基础上加以修改就行。(1)模块初始化函数中,请求中断处理函数:ret=request_irq(S3C2440_IRQ5,s3c2440_IRQ3_fun,SA_INTERRUPT,"S3C2440_IRQ5",NULL);中断处理函数为:s3c2440_IRQ3_fun()在此中断处理函数中,用一个全局变量count在每一次中断的时候加1,由于我们的开发板按一次会处理两次,所以计数到7的时候,必须使count恢复到1。具体实现如下:intcount=0;irqreturn_ts3c2440_IRQ3_

6、fun(intirq,void*dev_id,structpt_regs*reg){printk("enterinterrupt5!");count++;if(count==7)count=1;}(2)设备初始化:staticint__inits3c2440_interrupt_init(void){intret;intflags;local_irq_save(flags);//bysprifes3c2410_gpio_cfgpin(S3C2410_GPF5,S3C2410_GPF5_EINT5);s3c2410_gpio_pullup

7、(S3C2410_GPF5,1);//endset_irq_type(S3C2440_IRQ5,/*IRQT_FALLING*/IRQT_LOW);local_irq_restore(flags);ret=request_irq(S3C2440_IRQ5,s3c2440_IRQ3_fun,SA_INTERRUPT,20"S3C2440_IRQ5",NULL);if(ret){printk("S3C2440_IRQ5request_irqfailure");returnret;}printk(DEVICE_NAME"int05initiali

8、zed");return0;}(2)设备退出:staticvoid__exits3c2440_interrupt_exit(void){free_irq(S3C2440_IR

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

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

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