ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:737.58KB ,
资源ID:6641953      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6641953.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式操作系统程课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式操作系统程课程设计报告.docx

1、嵌入式操作系统程课程设计报告目录一、 实习任务和目的1二、实习基本要求1三、实习题目1四、实习地点1五、实习内容3六、实习总结、心得体会8七、参考资料9一、实习的任务和目的:本次实习的目的是在学生已掌握了嵌入式操作系统的知识、对当前嵌入式操作系统的主要种类和应用领域有较清晰的概念的基础上,以嵌入式LINUX操作系统教学内容为指导,以S3C2410经典实验箱为平台,使学生掌握配置、裁剪、移植和维护嵌入式LINUX操作系统的技能和相关理论知识,具备一个初级嵌入式LINUX系统程序员的综合技能。本次实习的任务是通过教师对嵌入式LINUX的配置、裁剪、移植以及文件系统的移植等内容的讲解,让学生掌握如何

2、搭建嵌入式开发环境、嵌入式LINUX系统移植、文件系统移植以及简单的驱动程序的开发。二、实习基本要求:1、了解嵌入式操作系统技术前沿、应用领域、发展趋势及相关领域研究成果;2、熟悉嵌入式操作系统的特点、分类、基本概念;3、熟悉主流实时操作系统。深入了解嵌入式LINUX,包括系统配置、裁剪、移植;4、熟悉并掌握嵌入式文件系统的建立、移植;5、以嵌入式处理器器S3C2410为例,掌握嵌入式LINUX驱动程序开发的一般方法。三、实习题目:1、复习LINUX系统基本操作,常用命令;2、嵌入式LINU开发基础知识;3、嵌入式LINUX开发环境的建立;4、Bootloader移植;5、LINUX内核的配置

3、、裁剪;6、LINUX内核移植与编译;7、建立根文件系统;8、模块方式驱动程序设计;9、中断、LED驱动程序设计。四、实习地点:应用技术学院五楼四机房。五、实习内容:第一部分 嵌入式LINU开发基础知识:1.1 嵌入式LINUX简介 嵌入式系统的定义为以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它的主要特点是潜入、专用。本次实训的平台是在LINUX下的ubuntu系统上进行的。1.2 嵌入式LINUX开发平台简介 本次实训的需要一台主机及一块开发板,它们需要满足一定的硬件要求,主机的硬件要求是:有一个25针的并口接口

4、,它用来连接JTAG连线,有一个9针的串口接口,支持网络,至少20GB的硬盘,用到的开发板是s3c2410,它有如下的部件:64MB SDRAM,1MB NOR Flash,64MB NAND Flash,两个网卡,5个串口(内置3个,外扩2个),音频输入输出。2.5寸IDE接口,标准SD/MMC卡座,GPIO按键,外接I2C接口的实时时钟(RTC)芯片。1.3 嵌入式LINUX开发流程 (1)在主机上编译Bootloader,然后通过JTAG烧入单板,(2)在主机上编译嵌入式LINUX内核,通过Bootloader烧入单板或直接启动,(3)在主机上编译各类应用程序,单板启动内核后通过NFS运

5、行他们,经过验证后再烧入单板。1.4 嵌入式LINUX开发环境的建立 开发环境的搭建:硬件开发环境的搭建很简单,将主机与目标板通过JTAG、串口线(接单板上的串口0)、网线(接单板上的网卡0)连接起来,将各类设备连接到目标板上即可,软件的搭建环境相对要复杂的多,时间也要得多,首先第一步需要移植Uboot,然后再来烧写LINUX内核,再创建根文件系统,最后才可以来写相应的驱动程序来进行开发的!第二部分 嵌入式LINUX系统构建:2.1 Bootloader移植u-boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, u-boot不仅仅支持嵌入式LINUX系统的引导,当

6、前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。u-boot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。移植过程: 在主机上创建一个文件夹,把以下四个已下载的文件复制到里面,这四个文件分别为:u-boot.bin ,- LINUX操作系统启动的bootloader; uImage ,- LINUX操作系统内核; root.cramfs ,- 根文件系统; yaffs.tar.bz2 ,- 应用程序压缩包。运行sjf2410-s命令如下:sjf2410-s

7、/f:u-boot.bin。然后按回车,等待烧写完成后,设置开发板的地址与服务器的地址,命令如下:设置本机服务器IP地址:(根据具体主机环境更改IP)setenv serverip 192.168.1.113,设置ARM设备IP地址:(随意设置成与上面主机同一网段IP即可),setenv ipaddr 192.168.1.199,保存变量设置:saveenv。2.2 内核裁剪与移植LINUX本次实验目录下存放着已经修改好的博创经典2410平台的内核源码包,将该源码包拷贝到宿主机LINUX系统中,解压至本次实验目录,配置编译生成内核uImage文件烧写到ARM设备中。在内核根目录下,用命令mak

8、e menuconfig进入配置界面,对系统进行裁剪,如下:选择硬件系统配置LCD驱动网卡驱动配置NANF Flash驱动配置文件系统然后运行 bootm 启动内核即可。2.3 创建根文件系统解压busybox源码后,进入busybox源代码目录,打开Makefile,修改两个地方,分别是在Makefile文件中的CROSS_COMPILE=后面添加上arm-LINUX-这一行以及ARCH ?=后面改成arm.然后在busybox根目录下使用命令make menuconfig进入配置界面进行配置,如图:Busybox截图退出后,使用命令make,make install。用shell脚本创建根

9、文件系统的目录结构,并在想要运行根文件系统的地方运行脚本,需要创建一个文件夹rootfs,里面包括了一些LINUX下的基本的文件。还需要把busybox源码目录下的/etc的内容拷贝到此处创建的文件夹的etc下,修改拷贝过来的profile文件,修改初始化文件inittab和fstab,修改初始化的脚本文件,init.d/rcS,创建一个空的mdev.conf文件,在挂载根文件系统时用到,再把本机上的passwd,shadow,group文件拷贝过来,把busybox默认安装目中的文件全部复制到这里的rootfs中,会发现多了LINUXrc-bin/busybox,这是挂载文件系统需要执行的,

10、这时,在rootfs目录下,使用命令cp -rvf /rootfs/busybox-1.12.2/_install/* ./,,到此,就用busybox创建了一个基本的文件系统。第三部分 设备驱动程序设计:3.1 模块方式驱动实验在这里,需要有两个程序,一个驱动程序,一个用户程序,驱动程序通过用户程序来调用,完成基本的读写以及注册设备号等,在本程序中,用户程序非常简单,驱动程序的核心部分是如下代码所示:static struct file_operations demo_fops = owner:THIS_MODULE,write:demo_write,read: demo_read,ioct

11、l: demo_ioctl,open: demo_open,release:;demo_release,其他的所有程序都是在这个基础上延伸出来的。还有一个注册设备号的函数如示:register_chrdev(0, DEVICE_NAME, &pxa270_fops);假设本驱动程序的源代码名字是s3c2410_led.c编译驱动程序模块的方法是把驱动程序复制到内核目录下的drivers/char子目录下,在drivers/char/Makefile中增加一行:obl-m +=s3c2410_led.o,然后在内核根目录下执行make modules.就生成drivers/char/s3c241

12、0_led.ko,再把它复制到开发板上,就可以使用insmod s3c2410_led.ko,rmmod s3c2410_led.ko了,此时,就可以执行本用户程序了,结果如下:3.2 LED驱动实验本实验的主要目的是写一个驱动程序来点亮开发板上的一颗LED灯。主要的程序核心还是集中在怎么给led灯引脚一个电平以及用户程序中ioctl程序的使用。程序的核心代码如下:static struct file_operations s3c24xx_leds_fops = .owner = THIS_MODULE, .open = s3c24xx_leds_open, .ioctl = s3c24xx_

13、leds_ioctl,;static int s3c24xx_leds_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) if (arg 4) return -EINVAL; switch(cmd) case IOCTL_LED_ON: s3c2410_gpio_setpin(led_tablearg, 0); return 0; case IOCTL_LED_OFF: s3c2410_gpio_setpin(led_tablearg, 1); return 0; defaul

14、t: return -EINVAL; 编译好模块后,复制到开发板目录下即可在开发板下执行,点亮led灯。 命令led_test 1 off/on,如此,就可以关闭或点亮一个led灯了!3.3 中断按键控制LED实验核心代码如下: 注册中断:request_irq(button_irqsi.irq, buttons_interrupt, button_irqsi.flags, button_irqsi.name, (void *)&press_cnti); 注册备:register_chrdev(BUTTON_MAJOR, DEVICE_NAME, &s3c24xx_buttons_fops);

15、中断函数:static irqreturn_t buttons_interrupt(int irq, void *dev_id) volatile int *press_cnt = (volatile int *)dev_id; *press_cnt = *press_cnt + 1; /* ev_press = 1; wake_up_interruptible(&button_waitq); return IRQ_RETVAL(IRQ_HANDLED);同理,把它的目标文件放到内核根目录下的drivers/char编译后,把生成的模块文件复制开发板下,即可完成相应的任务,通过按键可以来控制l

16、ed灯了,同时,可以通过命令cat /proc/devices, cat /proc/interrupt来查看设备及中断的注册情况!六、实习总结、心得体会:通过为期将近几周的嵌入式操作系统实习,我收获颇深。这次实习虽然短,可是收获很大,感觉平时上课学到的东西都没有这几天学到的多。正所谓:“实践是检验真理的唯一标准”。这次实习可以形象的概括为:“山重水复疑无路,柳暗花明又一村”。只有自己经历过才会真正的懂,书本知识还远远不够!此次嵌入式操作系统实习给我最深的体会就是:理论+细心+实践才能在实际生产中体现所学知识的价值。在嵌入式行业发展如此快速完善的今天,理论与细心与实际的完美结合才能让自己在专业

17、领域占有一席之地。在实习中,我初步了解了嵌入式处理器S3C2410的工作原理、也加深了对嵌入式处理器S3C2410的认识;也见识了关于嵌入式处理器的一些工作方式等。 几周的嵌入式操作系统实习结束了,做了好几个小实验,有成功也有失败,然而终究还是学会了很多东西。在整个实习期间,我体会到了自己的进步,并且从中也体会到了它的快乐。实习也让我明白了:第一,通过实践真正觉得自己可以做些什么了有点存在的小成就感;第二,通过嵌入式操作系统实习,加强了我们的动手实践能力和设计创新精神。作为信息时代的大学生基本的动手能力是一切工作和创造的基础和必要条件。第三,在嵌入式操作系统实习的这些日子里,大家的团队精神得到

18、了很大的加强,闭门就会造车那是不可能的事情。在为期两周的实习当中感触最深的便是实践联系理论的重要性,当遇到实际问题时,只要认真思考,运用所学的知识,一步一步的去探索,是完全可以解决遇到的一般问题的。本次实习的目的主要是:使我们嵌入式操作系统及LINUX相关操作有一定的感性和理性认识,培养和锻炼我们的实际动手能力。使我们的理论知识与实践充分地结合,作到不仅具有专业知识,而且还具有较强的实践动手能力,能分析问题和解决问题的应用型技术人才,为以后的顺利就业作好准备。此次实习学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。在此,感谢老师及其他老师的细心指导,也同样谢谢其他各组同学的无私帮助!七、参考资料:1、雅默著. 构建嵌入式LINUX系统M. 北京:中国电力出版社.2004年2、孙琼著. 嵌入式LINUX应用程序开发详解M. 北京:人民邮电出版.2003年3、2410经典实验指导书3.2 北京博创兴业科技有限公司2410经典实验箱配套教材4、韦东山著. 嵌入式LINUX应用开发完全手册 北京:人民邮电出版

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1