资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划uc,操作系统移植,报告UC/OS-II嵌入式系统在ARM上的移植UC/OS-II操作系统是一款完全公开的源代码,它非常精简,整个操作系统的代码只有几千行,是专门针对于嵌入式开发而产生的一款代码。它有几个特点,分别是可移植性、可固化、可裁剪、多任务、可确定性、任务栈、系统服务、中断管理、稳定性可靠性。UC/OS-II主要就是一个内核,由ANSIC语言编写而成。负责任务管理和任务调度,没有文件系统和界面系统。它的代码是公开的,系统的实时性强、移植性好、可多任务。UC/OS-II作为基于优先级的抢占式多任务的实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步和内存管理的功能。它使得任务的独立性,不相互干涉,非常的准时和高效,且易于设计和扩展。UO/OS-II共有16个内核文件,11个与CPU类型无关,就是说可以直接使用不需要修改。还有3个内核文件与CPU有关系,要根据需要作出相应的改动。剩下的两个内核文件和具体的应用有关。如图所示UC/OS-II的16个内核文件的层次。C/OS-II内核文件多任务操作的核心是系统调度器,利用TCB来管理任务调度功能。它的主要软件硬件功能是保存任务的当前态、优先级、等待事件、代码起始地址、初始堆栈指针等。程序的设计关键就是确定划分多任务的问题,以及任务优先级和任务通信。优先级的意思是每个任务都是无限循环的,有运行态度、就绪态、休眠态、挂起态和中断五种状态。当有高一级优先级的任务就绪后,低优先级立即停止运行,转为挂起态或就绪态。这就是可剥夺型的内核。当中断一个高优先级任务,中断时挂起,中断结束后任务继续运行,并立即剥夺低优先级的任务。对于这种可剥夺型内核,CPU的使用时可以确定的,可优化任务级响应。在很多单片机或ARM板上很容易就可以移植UC/OS-II。当然本次设计使用的TQ2440,也可以完美的移植它。移植程序在网上都可以找得到,所以设计中就不做解释了。本次设计实现的是串口协议和网口协议组合成的一个数据网关。其主要的流程图如下所示:如图所示可以很清楚的看出内核操作系统对于整个系统的控制过程,下面我们要介绍一下UC/OS-II里面的一些程序。用户应用程序任务定义代码如下:voidMyTask(void*pdata)/开始定义用户任务for(;).voidmain()TargetInit();/完成初始化目标开发板。OSInit();/完成初始化UCOS-II。OSTimeSet(0);/完成初始化系统时基。OSTaskCreate(MainTask,(void*)0,&MainTaskStkMainTaskStkLenghMainTaskPrio);/开始创建系统初始任务。OSStart();/整个任务开始。return0;voidTask0(void*pdata)/主任务建立:taks0和task1#ifOS_CRITICAL_METHOD=3/*分配CPU状态寄存器*/OS_CPU_SRcpu_sr;#endifOS_ENTER_CRITICAL();Timer0Init();/初始化报时信号-1,ISRInit();/初始化中断优先级OSPrintfInit();/用户任务给串口OS_EXIT_CRITICAL();DM9000_init();需要注意的是,C/OS-II的应用程序要使用空闲任务OSTaskldle,而它是不可删除的系统文件。下面开始对应用程序进行移植了。本次设计是在ARM开发板上实现串口、网口数据转换的的功能。在TQ2440上有串口和网口。通信过程简单的描述就是PC串口发送数据给ARM板,ARM接到串口数据后,从网口再传给PC。相反也是同样的道理,由网口发送数据,有ARM控制由串口发回数据。首先是TCP/IP协议的移植。在编写移植程序前,有必要解释一下基本的协议栈作用和意义。就常见的网络通信方式一般来说有两种:1、UART-RS232,此时只需要pc上有串口调试助手即可。2、TCP/IP,这时候和普通pc与pc通信一样可以用socket套接字编程也可用别人写好的软件侦听。而现在我们要实现的是串口控制单片机与PC机的通信,在这里用PC来代替以太网。接下来还要介绍一下以太网接口。while(1)OSPrintf(nEnterMainTaskn);/测试Dm9000/打印DM9000寄存器OSTimeDly(OS_TICKS_PER_SEC);OSStatInit();基于STM32的C/OS_II移植实例目录第一章C/OS_II移植准备工作.2硬件平台.2软件平台.2第二章C/OS_II移植步骤.3文件结构.3C/OS_II文件移植.4MDK中导入C/OS_II文件.4需要修改的代码.7第三章C/OS_II多任务以及任务间通信的实现.9C/OS_II任务的创建.9事件标志组的创建.11第四章C/OS_II移植测试.13C/OS_II多任务的测试.13任务间通信的测试.14第一章C/OS_II移植准备工作以武陵源车载系统终端为背景,探讨基于STM32的C/OS嵌入式系统移植方法。武陵源车载终端的基本功能是GPS数据的接收、站点和弯道的识别、超速报警、GPRS数据上传等。本文重点是把C/OS移植到程序中来,其次把各个基本功能模块化并划分为几个主任务,以便实现嵌入式系统的操作。硬件平台硬件平台是ARM公司基于ARMv7架构的Cortex-M3系列处理器STM32F103T8。此处理器执行Thumb-2指令的32位哈佛微体系结构和系统外设,包括NestedVec-toredInterruptController和Arbiter总线。它整合了多种技术,减少内存的使用,极小的RISC内核有着低功耗和高性能的特点。新的单线调试技术,避免使用多引脚进行JTAG调试,并全面支持RealView编译器和RealView调试产品。GPS模块为FastraxIT500,它是一款能适用于非常苛刻的应用场合,有着高性能的导航,即使在GPS卫星可见度较恶劣的环境下也能实现稳定定位。IT500有着领先的冷启动灵敏度和领先的导航灵敏度,定位率可以根据客户的要求设置到最高10Hz,非常适合高动态的应用。GSM模块为G600,它有着功耗低、体积小、便携式的特点。休眠模式下功耗仅为,采用两边SMT邮票口封装,支持全球通用的850/900/1800/1900MHz四频段,内置TCP/IP协议栈,符合工业级要求,可适应高温高湿、电磁干扰等恶劣的工作环境。软件平台软件平台为RVMDK软件。RVMDK是由ARM编译器RVCT与Keil的工程管理、调试仿真工具集成,RVMDK是业界最好的Cortex-M3开发工具之一,它拥有流畅的用户界面与强大的仿真功能,是一款非常强大的ARM微控制器开发工具。移植前需要熟悉RVMDK软件的使用。移植过程中需要用到如图所示文件,一个是武陵源车载系统终端程序,另一个是基于STM32的C/OS_II移植文件。图C/OS_II移植需要的文件夹第二章C/OS_II移植步骤C/OS_II的移植方法可以从三方面着手,首先分清武陵源车载系统终端文件和C/OS_II移植文件层次结构;其次掌握C/OS_II文件的移植过程以及在MDK软件中如何导入工程文件的过程;最后明确C/OS_II运行尚需添加的代码。文件结构武陵源车载系统终端程序主文件夹如图所示,文件夹中包含了整个工程项目文件。主文件夹中包含了如图所示的四个文件夹。输出文件夹中是MDK软件编译时生成的临时文件;Project文件夹中主要包含MDK工程的启动文件;图武陵源车载终端程序文件夹Librarie
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号