μC/OS?Ⅲ实时内核在F28M35x器件上的移植
2015-11-09王啸等
王啸等



摘 要: 在微控制器中使用实时内核可以简化嵌入式应用开发。简单介绍了μC/OS?Ⅲ实时内核和Cortex?M3内核的相关内容,将μC/OS?Ⅲ实时内核移植到F28M35x多内核片上系统微控制器中,并阐述了μC/OS?Ⅲ实时内核中任务的创建和调度原理,最终在目标板上运行并进行多任务切换。
关键词: μC/OS?Ⅲ; 嵌套向量中断控制器; 实时内核; 任务切换
中图分类号: TN919?34; TP316.2 文献标识码: A 文章编号: 1004?373X(2015)21?0159?03
Transplantation of μC/OS?Ⅲ real?time kernel on F28M35x device
WANG Xiao, MEI Jialun, CHEN Yue
(Ningbo CSR Times Transducer Techinique Co.,Ltd, Ningbo 315020, China)
Abstract: Application of real?time kernel in microcontroller can simplify the development of embedded application. The related contents of μC/OS?Ⅲ real?time kernel and Cortex?M3 kernel are introduced briefly in this paper, in which the μC/OS?Ⅲ real?time kernel is transplanted into SOC microcontroller of F28M35x dual?core device. The principles of task creation and dispatch in μC/OS?Ⅲ real?time kernel are elaborated. It was operated on target board and switched among multitasks.
Keywords: μC/OS?Ⅲ; nested vectored interrupt controller; real?time kernel; task switch
0 引 言
μC/OS?Ⅲ(Micro C OS Three,微型的C语言编写的操作系统第3版)是一个可升级的、可固化的、基于优先级的实时内核,Micrium公司于2011年8月公开原码,它具备良好的移植性,可以在多种微控制器中运行,加快了嵌入式软件应用开发。相比上一代μC/OS?Ⅱ,μC/OS?Ⅲ可以将多个任务设置在同一优先级上,并按时间片轮转调度,且任务数量是无限制的[1]。而随着ARM在嵌入式领域的不断发展,Cortex?M3器件在嵌入式领域可谓风生水起,它高效的NVIC(Nested Vectored Interrupt Controller)、高性能的RISC(Reduced Instruction Set Computer)以及固定的存储器位置意味着以它为内核的微控制器都可以方便地移植软件,因此在Cortex?M3上使用μC/OS?Ⅲ实时内核是极为方便的[2]。
1 F28M35x器件和μC/OS?Ⅲ
F28M35x器件内部集成了Cortex?M3内核和DSP?C28内核,可以通过核间通信交互协作[3]。高达132 KB的片上RAM、完善的外设和高速的时钟意味着它可以胜任许多任务:从通信到实时控制。M3内核高效的架构和快速的中断响应,使其适合使用嵌入式实时内核[4]。Cortex?M3配备的MPU还具备特权级和用户级操作,增加安全性[5]。
μC/OS?Ⅲ和Cortex?M3是密切相连的,主要包括NVIC(嵌套向量中断控制器)、PendSV(可挂起的系统服务请求)、SysTick(系统节拍定时器)等。NVIC是与M3内核紧密相联的中断控制器,它支持中断嵌套、动态优先级、中断屏蔽等,移植μC/OS?Ⅲ离不开它。……
