嵌入式课程设计有操作系统的嵌入式系统软件开发.doc
《嵌入式课程设计有操作系统的嵌入式系统软件开发.doc》由会员分享,可在线阅读,更多相关《嵌入式课程设计有操作系统的嵌入式系统软件开发.doc(24页珍藏版)》请在三一办公上搜索。
1、目 录第一章课程设计的任务说明11.1课程设计的目的11.2课程设计的要求1第二章有操作系统的嵌入式系统软件开发概述22.1有操作系统的软件开发流程22.2有操作系统的软件运行模式2第三章Linux操作系统简介6第四章uClinux操作系统简介7第五章开发环境的建立85.1建立主机Linux平台85.2安装交叉编译工具12第六章uClinux裁剪与编译136.1uClinux裁剪136.2uClinux编译15第七章操作系统下多任务应用程序开发167.1操作系统下多任务应用程序的开发流程167.2操作系统下多任务应用程序的开发环境167.3操作系统下多任务应用程序的开发177.3.1编写串口、
2、LED应用程序177.3.2添加应用程序至内核并随内核编译18总 结23参考文献24第一章课程设计的任务说明1.1课程设计的目的(1) 了解有操作系统的嵌入式系统软件开发流程;(2) 了解Linux操作系统的基本知识;(3) 熟悉Linux操作系统的常用命令;(4) 掌握Linux操作系统的vi编辑器用法;(5) 掌握Linux操作系统的gcc编译器用法;(6) 了解uCLinux操作系统的基本知识;(7) 掌握uCLinux操作系统内核编译环境的建立;(8) 熟悉uCLinux内核编译步骤;(9) 掌握将编译好的内核下载到系统运行的步骤;(10)掌握uClinux多任务编程与自启动。1.2课
3、程设计的要求(1)掌握课程设计所涉及到的相关知识。(2)拓宽和加深学生对已学过的理论知识的理解,从而掌握比较全面的专业知识。(3)进一步熟悉嵌入式系统软件开发流程,深刻地理解嵌入式系统原理和相关接口电路的实现。(4)按照要求撰写课程设计报告。第二章有操作系统的嵌入式系统软件开发概述2.1有操作系统的软件开发流程嵌入式操作系统及应用软件的开发流程如图2-1所示。.rom从Linux转出从windows转入共享文件夹BootLoaderARM-elf-tools交叉编译工具uClinux源代码ADS应用程序2.bin特殊功能寄存器SDRAMFlashRed Hat LinuxVMware共享文件夹
4、ADS0x00x1 0000应用程序1图2-1有操作系统的软件开发流程由图可知,在开发嵌入式操作系统及应用软件之前,应首先将操作系统引导程序烧写到Flash的起始地址0x0处,当系统初始化完了之后,应当跳转到操作系统的起始地址0x1 0000处,而不是应用程序的入口处。2.2有操作系统的软件运行模式在运行有操作系统的嵌入式系统中,主要包含了BootLoader引导程序、操作系统和应用程序这三类的程序。其中,引导程序是嵌入式软件系统中必不可少的部分,在引导程序运行完成后,嵌入式系统的硬件被设置到合适的状态,从而引导操作系统运行。操作系统启动后,才能进一步运行应用程序。这三种程序的不同组成方式和运
5、行方式就形成了不同的软件运行模式。他们就可以分为如表2-1所示的4种模式。表2-1有操作系统的嵌入式软件模式编 号模式ABootLoader直接引导操作系统,操作系统与应用程序一起编译,应用程序不自启动。BBootLoader直接引导操作系统,操作系统与应用程序一起编译,应用程序自启动。CBootLoader直接引导操作系统,操作系统与应用程序分开编译,应用程序通过网口等下载至SDRAM中。DBootLoader启动后显示菜单,手动引导操作系统。(1)BootLoader启动之后直接引导操作系统运行,应用程序编译在操作系统的romfs文件系统中,操作系统启动后并不能自动运行应用程序,而是根据需
6、要手动运行或者由其他程序调用。0x000 00000x001 00000x100 00000x120 00000x3FF 00000x3FF FFFF64 MB16 MB2 MB64 KBBootLoader启动后的编址空间特殊功能寄存器组还没有和物理设备建立映射的区域FlashSDRAM操作系统引导程序应用程序图2-2有操作系统的运行模式A在该模式下,BootLoader在完成系统初始化工作后,修改PC指针,直接跳到操作系统image.rom开始的地址处,引导操作系统运行。而应用程序和操作系统是一起编译在image.rom里面,操作系统启动之后,应用程序放在/BIN目录下,后是应用程序还需要
7、手动运行,如图2-2所示。(2)BootLoader启动之后直接引导操作系统运行,应用程序编译在操作系统的romfs文件系统中,操作系统启动之后自动运行应用程序,如图2-3所示。16 MB0x000 00000x001 00000x100 00000x120 00000x3FF 00000x3FF FFFF64 MB2 MB64 KBBootLoader启动后的编址空间特殊功能寄存器组还没有和物理设备建立映射的区域FlashSDRAM操作系统引导程序应用程序图2-3有操作系统的运行模式B在该模式下,BootLoader在完成系统初始化工作后,修改PC指针,直接跳到操作系统image.rom开始
8、的地址处,引导操作系统运行。操作系统启动完毕之后,会自动执行应用程序,主要是通过uLinux-dist/Vendors/Samsung/4510B/rc文件中添加系统启动后自动执行应用程序的的命令来实现:./bin/led&./bin/uart&命令后面的&符号表示在后台执行程序。(3)BootLoader启动之后直接引导操作系统运行,应用程序和操作系统单独编译。操作系统启动完毕之后,通过网络等通信方式将应用程序下载到操作系统文件夹中,如/var/tmp,再手动运行应用程序。该方式常用于调试应用程序,如图2-4所示0x000 00000x001 00000x100 00000x120 0000
9、0x3FF 00000x3FF FFFF64 MB16 MB2 MB64 KBBootLoader启动后的编址空间特殊功能寄存器组还没有和物理设备建立映射的区域FlashSDRAM操作系统引导程序应用程序图2-4有操作系统的运行模式C该模式下,BootLoader在完成系统初始化工作后,修改PC指针,直接跳到操作系统image.rom开始的地址处,引导操作系统运行。而image.rom映射文件里面并未包含应用程序,操作系统启动之后,通过网口、串口等方式将单独编译生成的应用程序下载至操作系统的可写入目录(如/var/tmp)中,再手动运行。这种方式适合应用程序调试,不需要每次修改应用程序都重新编
10、译和烧写操作系统。(4)BootLoader初始化完毕之后,并不是直接引导操作系统执行,而是进入到一个命令行界面中,可以输入相应命令进行操作,也可以引导操作系统。如U-Boot在初始化完毕之后,进入命令界面,用户可通过相应命令,来控制系统通过串口或网口下载文件、烧写Flash存储器、测试存储器等操作,如图2-5所示。0x000 00000x001 00000x100 00000x120 00000x3FF 00000x3FF FFFF64 MB16 MB2 MB64 KBBootLoader启动后的编址空间特殊功能寄存器组还没有和物理设备建立映射的区域FlashSDRAM应用程序操作系统引导程
11、序图2-5有操作系统的运行模式D在该模式下,BootLoader的功能已经不再限于系统的初始化程序。目前常用的几种通用BootLoader均提供了复杂的命令接口,可在BootLoader中对硬件进行大量操作,已经相当于一个微型操作系统。第三章Linux操作系统简介Linux是一种计算机操作系统和它的内核的名字。它也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发
12、行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice.org),等等。 Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支
13、持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。Linux的内核精简而高效,其内核的核心部分小到一张软盘就可以装下,通过对不需要功能的裁剪,Linux内核完全可以小到100KB以下。在嵌入式环境下的资源是非常有限的,所以操作系统的目录树中的所有文件都应该是系统需所必须的的文件,避免浪费的储存空间。Linux的romfs文件新添的根目录结构如图3-1所示。/bin/dev/etc/lib/pro/sbin/tmp/usr/var图3-1romfs文件结构第四章uClinux操作系统简介uClinux是一个完全符合GUN/GPL公约的操作系统,开放源代码。它原本被设计为桌面系统,现在广
14、泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是针对微控制领域而设计的Linux系统。 uCLinux是一种优秀的嵌入式Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性。他的专门针对没有MMU的CPU,并且经过各方面的小型化改造,为嵌入式系统做了许多小型化的工作,形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小
15、,却仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API。其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。uClinux的架构与标准Linux基本相同,只是对内存管理和进程管理进行了改写,以满足无MMU处理器的要求。uClinux针对没有MMU的处理器进行设计,不能使用处理器的虚拟内存管理技术,直接通过物理地址访问存储器,系统进程和用户也是运行在同一个存储空间。uClinux的基本构架如图4-1所示。文件系统内核初始化BootLoader系统调用处理函数C库函数捕获Handler调度器虚拟文件系统管理模块so
16、cket驱动网络模块文件系统模块字符设备驱动块设备驱动Mass存储设备驱动网络设备驱动驱动进程管理模块内存管理模块图4-1uClinux的基本构架uClinux的架构与标准Linux基本相同,只是对内存管理和进程管理进行了改写,以满足无MMU处理器的要求。uClinux针对没有MMU的处理器进行设计,不能使用处理器的虚拟内存管理技术,直接通过物理地址访问存储器,系统进程和用户进程也是运行在同一个存储器空间。第五章开发环境的建立5.1建立主机Linux平台建立交叉开发环境的第一步,是建立一个Linux平台来对应用程序和内核进行编译,这里使用虚拟机软件VMware和Red Hat Linux来搭建
17、一个在Windows环境下运行的Linux平台。具体步骤如下:(1) 在PC上安装并运行VMware,选择New Virtual Machine命令新建虚拟机,选择Custom自定义选项,如图5-1所示。 图5-1虚拟机的安装过程(1)(2) 单击“下一步”按钮,选择Linux版本为Red Hat Linux,为操作系统选择名字和安装路径,如图5-2所示。 图5-2虚拟机安装过程(2)(3) 为系统选择内存,一般为256MB,在此我们采用的512MB,网络连接类型选择第一种,如图5-3所示 图5-3虚拟机安装过程(3)(4) IO adpator类型选择Buslogic,选择Create a
18、new virtual disk,如图5-4所示。 图5-4虚拟机安装过程(4)(5) 选择SCSI,从硬盘分出4GB的容量,给Linux使用,如图5-5所示。 图 5-5虚拟机的安装过程(5)(6) 定义虚拟机文件名,此时一个新的Virtual Machine就这顶完成了。接下来开始安装Red Hat Linux,这里介绍利用iso文件安装的方式,先将iso文件装在进Linux的光驱,在图5-6所示的CDROM选项上双击后,选择硬盘的iso安装文件。 图5-6虚拟机的安装过程(6)在虚拟机软件执行Start this virtual machine,系统启动Linux安程序,如图5-7所示。
19、按照提示安装Linux,采用默认选项即可。图 5-7开始安装Red Hat Linux由于Linux与Windows采用不同的文件系统,一般在Linux下无法直接访问Windows的硬盘分区,而以后的实验需要在Linux和Windows之间进行文件交换,因此有必要在Linux虚拟机和Windows主机之间建立一个共享文件夹。首先启动虚拟机,进入系统后选中菜单VMinstall VMware tools,之后在Linux的桌面会出现一个名为VMware-tools的文件夹,如图5-8所示。如果没有自动出现这样的文件夹,可以采用U盘等途径将VMware安装目录里面的linux.iso文件复制到Li
20、nux系统下,挂载此文件即可。图5-8安装VMware Tools由于光驱文件夹是不可写的,因此需将VMware Tools-5.5.1-19175.tar.gz复制到可写目录里,在输入命令#tar xzvf VMware tools-5.5.1-19175.tar.gz解压到当前目录的VMware-tools distrib文件中,运行其中的VMware install.pl文件开始安装。安装完毕后,在/mnt目录下会自动建立一个名为hgfs的文件夹,通过这个目录,就可以在Linux下访问对应的Windows文件夹。进入VMsetting,在Options选项卡下选择Share Folder
21、s,单击Add指定一个Windows下文件夹作为与Linux的共享文件夹,如图5-9所示。这样在Linux下的/mnt/hgfs目录中,就可以访问到这里指定的Windows目录,并可以进行读/写操作。图5-9设定共享目录5.2安装交叉编译工具交叉编译是在一个平台上生成另一个平台上的可执行代码。使用交叉编译工具有很多种原因,有时是因为目标平台上不允许或者不能安装所需的编译器;有时是因为目标平台资源贫乏,无法运行所需要编译器;有时是因为目的平台还没有建立,连操作系统都没有,根本无法运行编译器。交叉编译概念的出现和流行是和嵌入式系统的广泛发展同步的。目前常用的计算机软件,都是需要通过编译的方式,把实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 操作系统 系统软件 开发
链接地址:https://www.31ppt.com/p-2392866.html