基于stm32ucosii系统移植.docVIP

  1. 1、本文档共50页,可阅读全部内容。
  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文档。上传文档
查看更多
基于STM32的u/COS-II系统移植 【摘要】本文硬件平台采用ARM公司基于ARMV7架构的Cortex-M3系列处理器STM32F103,利用安富来公司现有的开发板,移植一个基于u/COS-II操作系统的应用程序框架(系统移植);创建多个任务,并通过使用消息邮箱进行两个任务之间的通信。本文重点是把u/COS-II系统移植到程序中来,进而把各个基本功能模块化,并划分为几个主任务,以便实现嵌入式系统的操作。 【关键字】u/COS-II STM32 系统移植 消息邮箱 串口通信 【引言】随着人类社会经济的不断发展,科研领域不断的拓宽,嵌入式系统产品渐渐完善,并在全世界各行业得到广泛应用。通过移植嵌入式操作系统,计算机可以更好地管理内存,并且在很大程度上提高系统的实时性。本设计通过在STM32上移植u/COS-II操作系统,实现了流水灯闪烁,使用消息邮箱实现多任务间的通信,并通过串口将信息打印到PC终端等功能。加深了笔者对嵌入式操作系统的理解。 【正文】 1 U/COS-II的简介 U/COS-II的前身是UCOS,最早出自于1992年美国嵌入式系统专家Jean J.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把UCOS的源码发布在该杂志的BBS上。目前必威体育精装版的版本:U/COS-lll已经出来,但是现在使用最为广泛的还是U/COS-II,本章我们主要针对U/COS-II进行介绍。 U/COS-II是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。为了提供最好的移植性能,U/COS-II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括 DSP)。 U/COS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的,总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将 U/COS-II 嵌人到开发的产品中。U/COS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。U/COS-II已经移植到了几乎所有知名的CPU上。 U/COS-II构思巧妙。结构简洁精练,可读性强,同时又具备了实时操作系统的全部功能,虽然它只是一个内核,但非常适合初次接触嵌入式实时操作系统者,可以说是麻雀虽小,五脏俱全。U/COS-II(V2.91版本)体系结构如图1所示: 图1:U/COS-II体系结构图 本设计使用的是U/COS-II的必威体育精装版版本:V2.91版本,该版本U/COS-II比早期的U/COS-II(如V2.52)多了很多功能(比如多了软件定时器,支持任务数最大达到255个等),而且修正了很多已知BUG。 从上图可以看出,U/COS-II的移植,只需要修改:os_cpu.h、os_cpu_a.asm和os_cpu.c等三个文件即可,其中:os_cpu.h,进行数据类型的定义,以及处理器相关代码和几个函数原型;os_cpu_a.asm,是移植过程中需要汇编完成的一些函数,主要就是任务切换函数;os_cpu.c,定义一些用户HOOK函数。 图中定时器的作用是为U/COS-II提供系统时钟节拍,实现任务切换和任务延时等功能。这个时钟节拍由OS_TICKS_PER_SEC(os_cfg.h中定义)设置,一般设置U/COS-II 的系统时钟节拍为1ms~100ms,具体根据所用处理器和使用需要来设置。本设计中,我利用STM32的SYSTICK定时器来提供U/COS-II 时钟节拍。 U/COS-II早期版本只支持64个任务,但是从2.80版本开始,支持任务数提高到255个,不过对一般使用者来说一般64个任务都是足够多了,一般很难用到这么多个任务。U/COS-II保留了最高4个优先级和最低4个优先级的总共8个任务,用于拓展使用,但实际上,U/COS-II一般只占用了最低2个优先级,分别用于空闲任务(倒数第一)和统计任务(倒数第二),所以剩下给我们使用的任务最多可达255-2=253个(V2.91)。 所谓的任务,其实就是一个死循环函数,该函数实现一定的功能,一个工程可以有很多这样的任务(最多255个),U/COS-II对这些任务进行调度管理,让这些任务可以并发工作(注意不是同时工作!并发只是各任务轮流占用CPU,而不是同时占用,任何时候还是只有1个任务能够占用CPU),这就是U/COS-II最基本的功能。 U/COS-II的任何任务都是通过一个叫任务

文档评论(0)

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

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

1亿VIP精品文档

相关文档