嵌入式UC/OS—II在LPC2104上的移植及通信设计.docVIP

嵌入式UC/OS—II在LPC2104上的移植及通信设计.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式UC/OS—II在LPC2104上的移植及通信设计

网上下载的论文,希望对大家的学习有用,以下是论文的原文: 嵌入式UC/O S—I I在L PC2 1 04上的移植及通信设计 引言 UC/OS—II是一种专门为微处理器设计的抢占式实时多任务操作系统,具有源代码公开、可移植性、可裁减性、稳定性和可靠性高等特点。由于UC/OS—II是为嵌入式应用编写的通用软件,故在具体应用时需根据不同单片机的特点进行移植,其大部分代码是用标准C语言所写.只有与处理器相关的一部分代码用汇编语言编写.因而具有很强的移植性,能在从8位到64位单片机以及DSP等超过40种不同构架的微处理器上实现运行。 LPC2104是Philips公司推出的一款带有一个支持实时仿真和跟踪的ARM7TDMI—S为核心的32位微控制器,内部有31个通用32位寄存器和6个状态寄存器。它的构架采用ARM公司的l6位132位RISC结构,CPU操作频率可达60MHz。能够与常用的外围设备实现无缝连接 具有多个32位定时器、PWM输出和32个GPIO,特别适用于工业控制和医疗系统,其中UART1带有完全的调制解调器接口,可以用于网络产品。 要实现UC/OS—II在LPC2104的构建、裁减和移植,需要有LPC2104的编译器,本文采用的是ARM公司推出的ADS1.2编译器。 正文 1 UC/OS_11在LPC2104上移植的概要 在开发嵌入式操作系统时。必须同时考虑硬件和软件。本文中移植代码结构由四部分组成,分别是用户代码、与处理器无关代码、与应用相关代码、与处理器相关代码。用户代码即应用软件,用来实现用户的具体要求,例如本文中和Pc机的串口通讯代码;与处理器无关代码即UC/OS—II内核代码,包含OS_CORE.C、OS_FLAG.C、OS_MBOX.C、OS_MEME.C、OS_Q.C、OS_ SEM.C、OS_ TASK.C、OS_ TIME.C、UCOS_ II.C、UCOS— II.H十个文件;与应用相关代码即UC/OS—II配置代码,包含OS_CFG.H、INCLUDES.H两个文件;与处理器相关代码即UC/OS—II要移植的处理器配置代码,包含OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C三个文件。 UC/OS—II在LPC2104上的移植与其它处理器的区别是:启动代码以及与处理器相关代码的不同。启动代码本文采用ZLG公司提供的代码,与处理器相关的代码包含OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C三个文件进行编写.主要包含以下几方面: ■用#define设置常数的值(os_CPU.H); ■声明l0个数据类型(Os_CPU.H); ■用#define声明宏(os_CPU.H); ■用C语言编写五个函数(os_CPU_C.C); ■用汇编语言编写六个函数(os_CPU_A.ASM); 这三个文件与芯片的硬件特性有关,它们主要提供任务切换与时钟的功能。UC/OS—II的其它内核代码均用C语言写成,它们为系统提供任务管理、进程问通信、时间管理以及内存管理等功能。 INCLUDES.H是一个头文件,在所有后缀为.C的文件开始都包含INCLUDES.H文件,其主要包含 OS_CPU.H、OS_CFG.H、UCOS_II.H三个文件和对各种模式的定义。OS_CFG.H主要包含的是一些二值常量,通过对这些常量置1或0,可以方便的对内核进行裁 2.2.2功能函数简介 减,这是UC/OS—II较为突出的一个优点。 (1)OSStartHighRdy()函数 2 UC/OS-II在LPC2104上移植代码分析 2.1 OS_CPU.H文件分析OS_CPU.H包括用#define定义的与处理器有关的常量,宏和类型定义。 (1)数据类型 由于不同的处理器有不同的字长,UC/OS—II的移植需要重新定义一系列的数据结构以确保其可移植性。用户还需通过OS_STK声明正确的C数据类型将任务堆栈的数据类型通知UC/OS—II。在LPC2104中堆栈是按16位字长进行操作的,所以堆栈数据类型os_STK被声明为l6位。所有的任务堆栈都必须用OS_STK来声明数据类型。 (2)堆栈方向 LPC2104微处理器的堆栈支持高地址到低地址的递减和低地址到高地址的递增模式,但编译器ADS1.2只支持高地址到低地址的递减模式, 所以OS_STK_GROWTH必须设置为1。 (3)代码临界区 UC/OS-II在进入系统临界代码区之前需关中断,退出临界区后再开中断。则UC/OS-II能够保护临界区代码免受多任务或中断服务例程的破坏。在LPC2104中,通过设置状态寄存器CPSR中的中断禁止位来实现。UC/OS-II中的宏OS_ENTER_CRITICAL () AR_MDisableInt()定义将状态寄存器中的中断禁止位置位

文档评论(0)

haocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档