教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 基于STM32的μCOS―Ⅲ系统移植的设计

基于STM32的μCOS―Ⅲ系统移植的设计

上传者:网友
|
翻新时间:2023-01-22

基于STM32的μCOS―Ⅲ系统移植的设计

摘 要:随着嵌入式系统产品渐渐完善,并在全世界各行业得到广泛应用,通过移植嵌入式操作系统,计算机可以更好地管理内存,并且在很大程度上提高系统的实时性。文章主要介绍了μCOS-Ⅲ操作系统在基于ARM Contex-M3为内核的STM32处理器的移植要点,并且实现了源码公开的嵌入式实时操作系统μCOS-Ⅲ在STM32处理器上的成功移植。

关键词:μCOS-Ⅲ;STM32处理器;移植

引言

随着人类社会经济的不断发展,科研领域不断的拓宽,嵌入式系统产品渐渐完善,并在全世界各行业得到广泛应用。通过移植嵌入式操作系统,计算机可以更好的管理内存,并且在很大程度上实现了系统的实时性。μCOS-Ⅲ作为一个微型实时操作系统,包括了一个操作系统最基本的特性,使用汇编语言和C语言编写的μCOS-Ⅲ的构思巧妙,结构简洁精炼,可读性很强,作为一个源码开放的嵌入式操作系统,用户只要做很少的工作就可以把它进行移植和维护。

1.1 实时操作系统μCOS-Ⅲ

μCOS-Ⅲ是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性。所谓的移植,在一个平台环境能够成功运行的程序,将它搬运到另一个平台环境,并且使其成功运行。发展至今的μCOS-Ⅲ,特别适合于微处理器和控制器,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位的各种CPU。

μCOS-Ⅲ源码可分为:与应用程序相关的文件、与计算机硬件相关的文件和系统内核的各种服务文件。用户在移植时,需要对与计算机硬件相关的文件进行修改:如OS_CPU.H文件,OS_CPU_A.ASM文件和OS_CPU_C.C文件。而系统内核的各种文件,如:OS_CORE.C、OS_FLAG.C、OS_MBOX.C、OS_MUTEX.C等,与应用程序相关的文件:INCLUDES.H和OS_CFG.H则不需要修改。

ST公司针对STM32提供了STM32库作为函数接口,使得开发人员得以脱离最底层的寄存器操作,有开发快速、易于阅读、维护成本低等优点。

2 μCOS-Ⅲ的移植

2.1 修改OS_CPU.H文件

μCOS-Ⅲ的内核使用一个周期时钟中断,以计算任务延时时间和进行任务调度,在STM32中,这样的时钟中断正适合由SysTick来提供。因为OS_CPU_SysTickHandler()函数与STM32库所提供的stm32F10x_it.c文件中的SycTick_Handler()函数功能一样,都是使用SysTick的中断处理,所以我们采用SycTick_Handler()函数。因此,相应的对于OS_CPU.H文件的操作是:注释掉OS_CPU_SysTickHandler()和OS_SysTickInit()函数的声明。

2.2 修改OS_CPU_C.C

OS_CPU_SysTickHandler()和OS_CPU_SysTickInit()函数的定义在OS_CPU_C.C文件中,由于我们采用了STM32官方库提供的函数来对SysTick进行中断处理,所以我们要把OS_CPU_C.C的OS_CPU_SysTickHandler()和OS_CPU_SysTickInit()这两个函数注释掉。

2.3 修改OS_CPU_A.ASM文件

我们下载的μCOS-Ⅲ移植工程是在官方的IAR编译环境下建立的,IAR在汇编的语法方面和我们使用的MDK编译器有一点区别,所有我们对汇编文件的部分指令做如下修改:在OS_CPU_A.ASM文件中,将原来的PUBLIC指令改为EXPORT,它们是等价的。(见表1)

2.4 修改CPU_A.ASM文件

在CPU_A.ASM汇编文件中,仍有因编译环境的不同而引起的错误,修改的方法同修改OS_CPU_A.ASM文件一样,将原来的PUBLIC指令改为EXPORT。除此之外,在CPU_A.ASM文件中某些标号带有冒号,如“CPU_CntLeadZeros:”、“CPU_RevBits:”、

“CPU_WaitForInt:”和“CPU_WaitForExpect:”,为了适应编译环境,需要将其中的冒号去掉。

2.5 修改STM32F10X_IT.C文件

我们可以看到,在SysTick的函数中调用了3个函数,它们都是μCOS源码定义的函数,其基本功能如下:

(1)OSIntEnter()函数,对用于表示中断嵌套层的变量OSIntNesting加1,它与OSIntExit()函数成对出现,在进入中断服务函数时,都应该包含这两个函数,中断服务的内容位于这两个函数之间。

(2)OSIntExit()函数,除了对嵌套层数OSIntNesting减1表示退出中断外,还具有任务调度功能。

(3)OSTimeTick()函数主要工作是对系统统计事件的变量OSTime加1,另外,它还会遍历所有任务,对延时任务的时间减1。

至此,我们对μCOS的源码针对编译环境做了修改,将SysTick中断修改到STM32所提供的STM32F10X_IT.C文件后,就基本完成了μCOS的移植了。

3 系统测试

我们现在需要对移植好的代码做一个简单的测试,通过编写流水灯任务来验证移植的成功。流水灯任务的部分代码如表3:

运行后我们发现实验板的流水灯按照循环的方式一直闪烁,验证了μCOS-Ⅲ在STM32处理器核上的成功移植。

4 结束语

作为一个成熟的嵌入式操作系统,μCOS-Ⅲ已经被广泛移植于各种体系的微型处理器上了。在嵌入式技术高速发展的今天,基于ARM为内核的微处理器凭借ARM优秀的体系结构被运用于各种行业。通过研究μCOS-Ⅲ的移植,可以使得它在更广泛的平台得到应用,更促进嵌入式技术的发展。

参考文献

[2]任哲.嵌入式操作系统基础μC/OS-II和Linux(第2版)[M].北京:北京航空航天大学出版社,2011.

[3]野火开发板配套资料.μC/OS-Ⅲ在STM32的移植详解[Z].

[4]Joseph Yiu.ARM Contex-M3 权威指南[M].宋岩,译.北京:北京航空航天大学,2009.

[5]许伦辉,修科鼎.基于ARM处理器的μCOS-II移植[J].科技广场,2010.

[6]邓中亮,何双亮.基于ARM的嵌入式操作系统μC/OS-II的移植研究[J].计算机技术与发展,2007.

作者简介:马昊(1994-),男,本科在读,现就读于徐州工程学院信电学院电子信息科学与技术专业。

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

我的同桌
可爱的仓鼠
我的大姐姐
我是“书虫”
飞进车厢的蝴蝶
家乡的秋天
我喜欢剪报
美丽的郑风苑
署假爸爸带我去下乡
难忘的奥运会开幕式
课间十分钟
比绝招
蚕宝宝
游泳中的挫折
我学会溜冰了
2009年工人入党申请书范文
检察干警的入党申请书范文
简短的入党申请书范文
最新入党申请书范文
优秀入党申请书范本
2009年农民入党申请书
高中教师入党申请书范文
最新简短精湛的入党申请书范文
高中学生入党申请书格式
2009年最新大学入党申请书范文
工厂电气维修人员入党申请书
09年通用版入党申请书范文
2009年公务员入党申请书范文
09年11月国家公务员入党申请书
2009年大学生本科生入党申请书
城市公共交通枢纽选址与商业潜能开发
声乐教育中伴奏的必要性
北京地铁5号线宋家庄停车场轨道铺装施工技术.
审计报告的完善过程与运用研究
武汉与莫斯科轨道交通线网规划及相关发展对比
管理会计在测定纳税人营业额的应用(1)
沿海城市轨道交通线路穿越跨河流桥梁处理方案分析
上海轨道交通8号线信息管理系统开发与应用
漫论会计职业道德建设(1)
天津地铁营口道车站深基坑信息化施工技术研究
浅谈津滨轻轨东兴路站主体施工
浅析土压平衡盾构机滚刀损耗形式
普高声乐教学能力提升方法探析
北京地铁5号线整体道床道岔施工技术
会计理论研究的回顾与展望:方法论视角(1)
《太空生活趣事多》词语
《回声》教学设计4
《活化石》教学建议
《太空生活趣事多》教学设计4
《太空生活趣事多》词语理解、搭配与例句
《太空生活趣事多》教后反思
《活化石》教学设计4
《活化石》教学设计3
《太空生活趣事多》教学建议
《活化石》学习目标和教材简说
《活化石》教学设计2
《活化石》教学设计5
《太空生活趣事多》说课设计
《太空生活趣事多》教学设计3
《太空生活趣事多》教学设计片断