嵌入式实时操作系统μC/OS-Ⅱ在LPC2378上的移植及应用
引言
目前,市场以及院校科研用嵌入式系统产品,如Vxworks,Linux和Windows CE等都已经相当成熟,提供了有力的开发和调试工具,但有些开发成本昂贵,周期较长,而μC/OS-Ⅱ是一种多任务实时源代码的公开操作系统,内核精简,移植性较强,非常适合用于一些小型控制和实验系统的开发。
1 操作系统及CPU介绍
μC/OS-Ⅱ是基于优先级的占先式实时多任务操作系统,包含有任务管理、时间管理、任务间同步通信(信号量,邮箱,消息队列)和内存管理等功能。绝大部分代码用C语言写成,极少部分与处理器密切相关的代码用汇编语言编写,便于移植。作为一个源代码公开的实时操作系统,最多可以管理64个任务,并支持信号量、邮箱、消息队列等多种进程间的通信机制,同时用户可以根据需求对内核中的功能模块进行裁剪。
LPC2378是一款基于ARM7TDMI-S内核的嵌入式精简指令集微控制器,包含了1个支持仿真的ARM7TDMI-SCPU,适用于为了各种目的而需要进行串行通信的应用。该体系机构支持用户、软中断、中断、管理、中止、未定义、系统等7种处理器模式,ARM7TDMI-S处理器内部有31个通用32位寄存器,6个状态寄存器。LPC2378包含了1个10/100 EthernetMAC,USB 2.0全速接口,4个UART接口,2路CAN通道,1个SPI接口,2个同步串行端口(SSP),3个I2C接口,1个I2S接口和MiniBus(MiniBus仅用于LPC2378,它是8位数据/16位地址并行的总线)。下面以μC/OS-Ⅱ在工业级芯片LPC2378上的移植为例,通过分析操作系统内核来介绍μC/OS-Ⅱ操作系统移植的一般方法和过程及相关问题的解决。
2 μC/OS-Ⅱ内核结构及工作原理
2.1 内核基本结构
图1是接近μC/OS-Ⅱ的简单内核体系结构图,内核保留给上层应用的接口有3个,分别是软保护、ITC和DSR。由于μC/OS-Ⅱ操作系统内核是可剥夺型实时多任务内核,因此最高优先级的任务一旦就绪,总能得到CPU的使用权。如果是中断服务子程序使一个高优先级的任务进入就绪态,则中断完成时,中断了的任务被挂起,优先级高的任务开始运行。
2.2 μC/OS-Ⅱ内核基本工作原理
多任务系统中,操作系统内核负责管理各个任务,或者说为每个任务分配CPU,并且负责各任务之间的通信和协同,任务切换是内核提供的基本服务。μC/OS-Ⅱ多任务操作系统的基本工作原理如下:
(1)在使用μC/OS-Ⅱ的所有服务之前,必须调用初始化函数OSInit(),初始化所有的变量和数据结构,同时创建空闲任务OSTaskIdle(),并赋予最低的优先级别和永远的就绪态,同时完成任务控制块(TCB)的初始化、TCB优先级表的初始化、TCB链表的初始化和事件控制块(ECB)链表的初始化。
相关文章
- 2023-04-12高精度光刻物镜的变形研究
- 2023-08-09微机控制曲轴疲劳试验台的研发
- 2022-05-10基于CPLD的直流无刷电机驱动电路设计
- 2023-03-06工业自动化仪表的使用
- 2023-01-09基于工作流的装配车间可配置制造执行系统



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。