【最新】第6章-3节嵌入式系统(uCOS-II移植)ppt模版课件.pptx

【最新】第6章-3节嵌入式系统(uCOS-II移植)ppt模版课件.pptx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【最新】第6章-3节嵌入式系统(uCOS-II移植)ppt模版课件

本章学习的主要内容:本章的重点及难点:1、各模块的基本原理1、ROTS应用举例2、各模块的综合应用2、ROTS概述学习方法:3、uC/OS-II的工作原理1、读懂教科书及参考资料代码4、uC/OS-II移植2、掌握实验手册的相关内容5、uC/OS-II应用实例3、加强并投入时间实验4、做好学习笔记8/17/2010 第4节 μC/OS-II 的移植8/17/2010User目录Main.CMain.HIncludes.HOS_Cfg.H7.1 概述与处理器无关操作系统内核代码μC/OS-II Source目录OS_CORE.C OS_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C OS_TMR.C uCOS_II.H与处理器有关需要移植代码开发板相关代码μC/OS-II Ports目录Cortex M3 OS_CPU_C.C OS_CPU_A.ASM OS_CPU.HBSP(板级支持包)Startup.STarget.CTarget.H ARM Cortex-M3 目标板8/17/2010内核文件主程序移植的部分板级代码用户代码8/17/2010R0-R12通用寄存器,可存储数据也可存放指针R13用于存放堆栈指针。实际上有两个堆栈指针SP_process(进程堆栈)和 SP_main(主堆栈),但任何时候只有一个是可见的。在本移植中, SP_process用于任务代码(即线程模式),SP_main用于异常代码 (即处理模式)。R14连接寄存器LR。在执行分支链接指令(BL)或带交换的分支链接指 令(BLX)时,存储来自PC的返回地址;也用作异常的返回。R15程序计数寄存器PC。用于指示当前正被执行的指令。根据不同的指 令,每执行一条,PC增加2或增加4。ARM Cortex-M3的寄存器模型 LM3S系列单片机采用ARM Cortex-M3内核;在移植之前,先简述可见寄存器模型。 ARM Cortex-M3总共有20个寄存器,每个都是32位宽度。8/17/20108/17/2010状态中断8/17/2010控制寄存器8/17/2010编译器还得支持,MDK开发环境,可生成可重入代码7.1.1 移植条件移植μC/OS-II到处理器上必须满足以下条件(1)处理器的C编译器能产生可重入代码 μC/OS是多任务内核,函数可能会被多个任务调用,代码的重入性是保证完成多任务的基础。可重入代码指的是可被多个体任务同时调用,而不会破坏数据的一段代码,或者说代码具有在执行过程中打断后再次被调用的能力。举例说明:Swap1函数代码:Int temp;void swap1(int *x,int *y){ temp=*x; *x=*y; *y=temp;}举例说明:Swap2函数代码:void swap2(int *x,int *y){ int temp; temp=*x; *x=*y; *y=temp;}不可重入可重入8/17/2010PRIMASK(2)用C语言可打开和关闭中断 ARM处理器核包含一个CPSR寄存器,该寄存器包括一个全局的中断禁止位,控制它便可打开和关闭中断。(3)处理器支持中断并且能产生定时中断 μC/OS-II通过处理器产生的定时器中断来实现多任务之间的调度。ARM Cortex-M3的处理器都支持中断并能产生定时器中断,专门有一个SysTick定时器来实现。(4)处理器支持能够容纳一定量数据的硬件堆栈(通常需要几十KByte字节) 比如AT98C51处理器,内部只有128字节的RAM,要运行,需外扩RAM。CM3的芯片,内部可多达128KByte的容量,因此可直接使用。运行TCP、UDP需要的内存会更大,通常要100K左右(5)处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈(或内存)的指令 μC/OS-II进行任务调度时,会把当前任务的CPU寄存器存到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。所以,寄存器的入栈和出栈是μC/OS-II多任务调度的基础。8/17/20107.1.2 移植步骤 所谓移植,就是使一个实时操作系统能够在某个微处理器平台上或微控制器平台上运行。由μC/OS-II的文件系统可知,在移植过程中,用户需要关注的就是与处理器相关的代码。这部分包括一个头文件OS_CPU.H、一个汇编文件OS_CPU_A.ASM和一个C代码文件OS_CPU_C.C。#define设置一个常量的值声明10个数据类型用#define声明三个宏OS_CPU.H实际中,写一个就行移植OS_CPU_C.C用C语言编写六个简单的函数OS_CPU_A.ASM编写四个汇编语言函数8/1

您可能关注的文档

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档