嵌入式系统课设报告_第1页
嵌入式系统课设报告_第2页
嵌入式系统课设报告_第3页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统设计报告题 目uCOSII的内核移植学 院信息科学与工程学院专 业 通信工程学号 姓名I、题目:uCOSII的内核移植H、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、掌握把UCOSII移植到ARM7i理器上的基本步骤及方法;3、掌握运用ADS编译器编写UCOSII多任务应用程序的方法。二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、查阅书籍资料,参考相关程序编写过,找出核心模块,在其基础上进行相应 修改;3、和其他组同学讨论,对各自实验存在问题讨论并交流经验。三、课程设计预期效果1、完成实验环境搭

2、建;2、完成 移植 UCOSII 到三星的 S3C44B0X ARM7TDMI 处理器;3、 编写多任务应用程序:一个熄灭 D7 D8灯的任务,一个点亮D7熄灭D8的任 务,一个熄灭D7点亮D8的任务,三个任务轮流输出。目录刖 言 .1第一章 系统设计 3第一节 课题目标及总体方案 .3第二节 UCOSII操作系统的移植概述介 .3一、UCOSII操作系统的简 .3二、UCOSII的内核结构 .4三、S3C44B0X 简介 5四、可移植性分析 6第三节ARM ADS 2.0开发环境简介.6第二章 实验(测试)结果及讨论 .8第一节 UCOSII移植及测试果 .8第二节 UCOSSII多任务测试

3、结 9第三章结论 12参考文献 13近些年来,数字化技术高速发展,嵌入式产品已经出现在我们生活中的方方 面面。嵌入式操作系统又作为嵌入产品的基石,在产业发展过来中扮演了越来越 不可替代的角色。而在嵌入式技术的快速发展过程中,实时多任务操作系统作为 一种软件平台已逐步成为国际嵌入式系统的主流。目前世界上已经有一大批成熟的实时嵌入式操作系统,通常,对嵌入式软件的基本要求是体积小、指令速度快、具有较好的裁减性和可移植性,目前,实时 操作系统很多,如 VxWorks ,Windows CE, pSOS,QNX , LynxOS 等, 这些操作系统都具有高可靠性、强实时性等特点,但他们都是商业操作系统,

4、价 格昂贵,人们往往很难接受,UC/OS- n操作系统的出现是对这些商业操作系统的一个很大的冲击。本次课设主要研究了嵌入式操作系统中应用较为广泛的、源代码开放的 UCOSII在基于目前应用非常广泛的 ARM处理器体系结构上的移植,并在此基础 上实现了简单的多任务应用程序的操作。第一章系统设计第一节 课题目标及总体方案本次课程设计要将uCOSII移植到三星的S3C44B0X ARM7TDMI处理器上, 并且编写多任务应用程序:一个熄灭 D7、D8灯的任务,一个点亮D7熄灭D8 的任务,一个熄灭D7点亮D8的任务。通过图1可以了解到uCOSII任务状态转换图,在我们的设计方案中,主要 在“等待消息

5、”上进行操纵。我们创建三个不同的任务,每个任务都有一个相对 应的信号量,在系统开始运作之初,我们发送一个信号量,让其中一个任务接收 到而开始工作,而在每个任务的最后会发送另外一个任务所相对应的信号量,当另一个任务接收到时就开始运行。由此通过三个信号量发送与接收的循环往复, 而实现三个任务的循环执行。图1 UCOSII任务状态转换第二节UCOSII操作系统的移植概述一、UCOSII操作系统的简介卩C/OSH是源码公开的实时操作系统,是一个自由操作系统。程序开发人员可以改写源代码,使之符合自己的要求,裁减掉不需要的部分,使操作系统变得小巧、灵活、并且能满足用户特定操作系统的需要。 为了提高系统的实

6、时能 力,卩c/os n可以将一个复杂的应用划分为多个相互独立的任务,并根据任 务的重要性来分配优先级。任务的调度完全由卩c/os n的实时内核完成,主要包括任务的状态管理、选择最高优先级的任务、执行任务和撤销任务等, 卩c/os n内核还负责CPU时间分配,CPU时间总是优先分配给中断事件, 其次是任务队列中当前优先级最高的任务,不同任务间的通信可以通过卩c/osn提供的信号量、邮箱、信息队列等机制完成,他的绝大部分代码是用c语言编写的,可移植性强,因此 1997年以后,在国际上逐渐被广泛采用。UCOSII的内核结构S-II的移植,首先得来看看它的内核结构2,用户应用程序无关的代码OS._C

7、ORE.COS_Q* COS._FLAG COS_SEM.COS._MB0X,COS_TASK COS._MEN,COS_TIME.COSMUTEX. CuCOS IE CuCOS-II与处理器uCOS-II 应川程序相关的代码OS_CFG* HINCLUDES.HuC0S_IL HuCOS-II与处理器相关的代码,移M时需要修改OS_CPU.HOS_CPU.A.ASMOS CPU C.C现在介绍各个方框内的部分。从上往下看,可以看到应用程序在整个卩c/OS-II的构架的最上方。这点也很容易理解,因为卩c/OS-II作为一个很优秀的嵌入式操作系统,它最基础的功能就在底层驱动支持下屏蔽硬件的差异

8、性,来为用户提供一个不需要考虑硬件的多任务平台。因此和其他的操作系统一样,用户程序都是建立在卩C/OS-II内核基础之上的。这样非常方便应用程序的编写。中间层左边方框内的这些代码是与处理器及其他硬件都无关的代码。可以看到,这些代码占了整个 卩C/OS-II的绝大部分。作为嵌入式操作系统,易于移植 是一个优秀操作系统必不可少的特性之一。为了使卩C/OS-II易于移植,它的创始人花费了大量的心血,力求与硬件相关的代码部分占整个系统内核的比例降到 最小。中间层右边方框里列出的实际上是两个头文件。OS_CFGH是为了实现卩C/OS-II内核功能的裁剪。通过配置这个头文件,卩C/OS-II可以方便的实现

9、裁剪, 以适应不同的嵌入式系统。而INCLUDES.H则包含了所有的头文件,这样在应用 程序包含头文件时只需将此头文件包括进去就能包含卩C/OS-II所有的头文件了。最下面的一个方框列出的是与处理器相关的代码,这部分是移植的主角,重 头戏都在这里面。在这一部分里,主要是一些和处理器相关的函数或者宏定义。整个移植的代码都在这几个文件中,大概几百行。移植需要几 小时到几星期不等,主要取决于对 卩C/OS-II和目标处理器的了解程度。三、S3C44B0X简介S3C44B0X是 Samsung公司推出的一款高性能的16/32位的RISC处理器。S3C44B0X提供了丰富的内置部件,包括:8KBcach

10、e,内部SRAM LCD控希9器,带自动握手的 2通道UART 4通道DMA I/O端口,RTC 8通道10位 ADC IIC-BUS接口,IIS-BUS 接口,同步 SIO接口和 PLL倍频器。芯片支 持ICE 能,可直接通过芯片上的JTAG 口与计算机通信,从而实现JTAG仿真功能和FLASH程序存储器的烧写。图3基于S3C44B0X的嵌入式硬件平台四、可移植性分析卩C/OS U核心代码很小,程序开发人员要把他移植到自己的目标板中只需做少量的工作。虽然卩C/OS U大部分源代码是用C语言写的,但是完成和处理器有关的代码时,还是用汇编语言来实现的。从资料可以知道,卩C/OS U的移植的主要工

11、作是修改与处理器相关部分的代码,他们集中在3个文件中,其中,OS_CPU.H包含与处理器相关的常量、宏和结构体的定 义; OS_CPU_C.C和OS_CPU_ASM中定义了用于底层的任务切换,退出 中断服务程序,在 CPU级屏蔽中断、打开中断、对任务栈初始化以及时钟 的中断服务程序的函数等,为了使应用程序运行于卩C/OS U上,还要相应地修改应用中使用的硬件和设备驱动。第三节ARM ADS 2.0开发环境简介ADS全称是ARM Developer Suite,它是由ARM公司提供的专门用于 ARMS 关应用开发和调试的综合性软件。在功能和易用性上比SDT都有提高,是一款功 能强大又易于使用的开

12、发工具。ADS的最新版本是1.2,它取代了早期的ADS1.1 和ADS1.0b ADS可以安装在多种 Windows操作系统上,其包括了一系列的应用, 并有相关的文档和实例的支持。ADS可以用来开发、编译、调试采用包括 C C+ 和ARM匚编语言编写的程序。第二章 实验(测试)结果及讨论第一节 UCOSII移植及测试(一)移植过程:移植就是让一个实时内核可以在某个微处理器或微控制器上运行。uC/OS-II在ARM处理器上的移植,需要完成的工作包括:修改三个和体系结构相关的文件。这三个文件是:OS_CPU_C.c OS_CPU.h OS_CPU_A.s它们的作用是把卩C/OS-II操作系统紧紧的

13、附着在ARM处理器上,实现软件与硬件的协同。1) OS_CPU.h:a. 把编译器类型数据重定义为 UCOS-II内核所用的数据类型;b. 编写相应ADS或 SDT编译器的开关中断的函数;c. 定义单个堆栈的数据宽度;d. 定义微处理器的堆栈的增长方向;2) OS_CPU_C.c:文件中主要包括10个函数,其中一个是任务堆栈初始化函数,其他九个为操作系统扩展的钩子函数。在OSTaskCreate()和OSTaskCreateExt()中,通过调用任务堆栈初始化函数OSTaskStkInit() 来初始化任务的堆栈结构,初始完毕后,堆栈看起来就像刚发生过中断并将所有的寄存器内容保 存到该任务堆栈

14、中的情形一样。3) OS_CPU_A.s:文件中主要包括 5个函数:OSStartHighRdy() 负责启动最高优先级任 务;OSIntCtxSw ()负责中断中的任务切换;OSCtxSw()负责任务切换;OSCPUSaveSR负责保存中断前的寄存器状态;OSCPURestoreSR()负责中断完成后,恢复中断前的状态。主体移植过程:1) .设置与处理器及编译器相关的代码OS_CPU.H2) .用C语言实现与处理器任务相关的函数OS_CPU_C.C;3) .处理器相关部分汇编实现。(二)测试过程:做完移植工作以后,就要测试移植是否正确,这其实是移植过程的最 后一步,应该首先不加任何用代码来测

15、试移植好的卩c/os n ,即应该首先测试内核自身的运行状况,这样做的目的是如果有些部分未能正常工作, 那就是移植本身的问题,而不是应用代码产生的问题,主要分为以下几个 步骤来进行移植的测试:首先,必须了解处理器所使用的编译器系统,这个步骤取决于使用的 编译器,在这期间是无代码的测试,其次,要验证OSTaskStkl nit()和OSStartHighRdy ()函数,在 OS_CFG.H 文件中设置 OS_TASK_STAT_EN 为0 ,只让一个空闲任务OS_TaskIdle ()运行,检查是否出错,然后需要验证任务级切换OSCtxSw ()函数,在测试任务TaskTest ()中加入OS

16、TimeDly ()函数, OSTimeDly ()函数接着调用OS_Sched (),OS_Sched ()调用汇编语言编写的函数OSCtxSw ()函数,如果是正确配置了 SWI , CPU就会开始执行 OSCtxSw (),最后,需要验证 OSIntetxSw ()和 OSTicklSR ()函数。当上述的这些测试步骤都成功后,可以尝试运行一些具体的任务,按 照由简到繁的过程不断使测试变得复杂,来进一步验证内核的稳定性和系 统性能。第二节 UCOSSII多任务测试结果(一) ADS1.2下建立工程我们在ADS编译器中中进行了 UCOSII系统移植并编写了应用程序后,得 到如图4的目录,A

17、pplication/INC目录下存放的是操作系统下的应用程序的头文 件,Application/SRC目录下存放的是操作系统的应用程序;Startup44b0/INC目录下存放的是ARM的启动代码和CPU板初始化程序的头文件,Starup44b0/SRC 目录下存放的是ARM的启动源代码文件44binit.s,库文件44blib.c, CPU板的 初始化文件target.c,在这里我们没有串口初始化,主要是针对后面章节里有专门讲述如何填加串口驱动,如何利用串口收发的缘故。在UCOSII/CPU目录下存 放的是操作系统的移植文件,UCOSII/INC目录下存放的是和应用任务相关的头 文件,UC

18、OSII/SRC目录下存放的是 UCOSII操作系统的源代码,它们是由 Ucos_II.C文件嵌进来的。在 UCOSII的正常运行之前,还必须进行硬件系统的 初始化,这也就是需要文件夹 Startup44b 0的理由。Application£ confi 直,h-匕Startup44E0申©环忙target, h 團 44blib.h option, h9| 44k h±QSBC 44blil). c 44binit 9 target, eUCOSII泊 OS_CPU_A S 町 os_cpu. h'.4E CpU C. Q£ Ind'u

19、des. h os_cfg. h uCOSJICn qCOSII.H(二) ADS1.2下仿真、调试紧接着我们在ADS1.2下进行仿真调试,首先要连接wigger调试电缆,然后, 给实验箱上电,打开H JTAG程序,如图5,自动连接实验箱(或点击第二个 按钮detect target进行连接)。正确连接后出现图6的界面。ca cj rJ 1 cJJ=L E=L 1=1 J=L 1=1 1=1 J=L 口 1=1 JZZLUNKNOWNOjcFFFFFFFFDetect t arge t,H U-JTAG ServerFile Operations Settings 卜lei 口g亘X I 4越

20、E 1I1B口口口口SB lOxOOOOOOOOH H-JTAG ServerFile Operations Settings HelpOARM7TDMI X1F0F0F0FOnonnnnnnnnnnnn匚匚匚匚匚匚匚匚匚匚匚匚= = = .Ready000000000图6如不能正确连接请检查电源是否打开和连线是否正确。当连上仿真器后,打开调试软件 AXD Debugger,如图7。点击 File|load image加载文件.axf。图7最后在实验箱上得到测试结果:一开始熄灭D7、D8灯,然后点亮D7熄灭D8的,最后熄灭D7点亮D8,并按此顺序循环执行。第三章结论1、卩C/OS- II在ARM7上移植的通用方法,但针对不同的处理器还需要作适当的修改,RTOS是当今嵌入式应用的热点,应用RTOS,可以提高产品的可靠 性,降低研发周期,其中卩C/OS- I具有很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论