- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于STM32μCOS―Ⅲ系统移植设计
基于STM32μCOS―Ⅲ系统移植设计
摘 要:随着嵌入式系统产品渐渐完善,并在全世界各行业得到广泛应用,通过移植嵌入式操作系统,计算机可以更好地管理内存,并且在很大程度上提高系统的实时性。文章主要介绍了μCOS-Ⅲ操作系统在基于ARM Contex-M3为内核的STM32处理器的移植要点,并且实现了源码公开的嵌入式实时操作系统μCOS-Ⅲ在STM32处理器上的成功移植。
关键词:μCOS-Ⅲ;STM32处理器;移植
引言
随着人类社会经济的不断发展,科研领域不断的拓宽,嵌入式系统产品渐渐完善,并在全世界各行业得到广泛应用。通过移植嵌入式操作系统,计算机可以更好的管理内存,并且在很大程度上实现了系统的实时性。μCOS-Ⅲ作为一个微型实时操作系统,包括了一个操作系统最基本的特性,使用汇编语言和C语言编写的μCOS-Ⅲ的构思巧妙,结构简洁精炼,可读性很强,作为一个源码开放的嵌入式操作系统,用户只要做很少的工作就可以把它进行移植和维护。
1 实时操作系统μCOS-Ⅲ和STM32处理器
1.1 实时操作系统μCOS-Ⅲ
μCOS-Ⅲ的前身是由美国嵌入式系统专家Jean J.Labrosse于1992年推出的嵌入式操作系统μCOS,经过了不断的完善和扩充,形成现在的μ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则不需要修改。
1.2 STM32处理器
STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。我们所采用的STM32F103型,其内核为ARM32位Cortex-M3 CPU,最高工作频率72MHz,1.25DMIPS/MHz。ECOPACK封装,最多高达112个的快速I/O端口,最多多达11个定时器,最多多达13个通信接口,具有3种模式:休眠,停止,待机模式的低功耗,可以使其广泛的应用于工业控制、医疗系统、访问控制等。
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。除此之外
您可能关注的文档
最近下载
- 工程维修委托协议合同书.docx VIP
- 《RPA财务机器人实训教程》教案示例.docx VIP
- 2023年3月scratch图形化编程等级考试试卷(四级)不带答案.docx VIP
- MITSUBISHI三菱CC-Link IE现场网络Basic远程I_O模块用户手册.pdf
- 2025年公务员多省联考《申论》题(天津市区卷).docx VIP
- 《GNSS原理及应用》全套教学课件.pptx
- 偷窥漫画第一季完整.docx VIP
- 2023《传统资源型城市的产业转型问题研究—以辽宁鞍山市为例》7400字.docx VIP
- 新时代中国特色社会主义理论与实践课件-2024年高教版研究生新中特教材.pdf VIP
- 复杂网络的同步与控制.pptx VIP
文档评论(0)