嵌入式实时操作系统μC/OS-Ⅱ在LPC1788上的移植及应用
2012-07-13薛晴
薛晴
(北京邮电大学 信息与通信工程学院,北京100876)
μC/OS-II系统是一款源码公开的,针对嵌入式系统的实时内核操作系统,与其它实时操作系统如Vxworks,Linux和Windows CE等相比,它比较适用于小型控制系统,同时具有执行效率高、占用空间小、实时性能优良和可扩展性强等优点[4]。
LPC1788是恩智浦公司于2011年底推出的业界首款采用ARM®CortexTM-M3技术的微控制器,目前已批量上市。120 MHz的LPC178x系列拥有512 kB闪存、96 kB SRAM和4 kB EEPROM。32位外部存储控制器支持SDRAM、NOR和SRAM器件,提供4种芯片选择[2]。其先进的低功耗工艺,特别适用于消费电子、工业控制、安防、通讯系统,以及需要高速计算的数据采集系统领域。
由于该款微处理器上市时间较短,目前还没有μC/OS-II操作系统应用于该款微处理器的移植代码。文中详细探讨了在IAR6.3集成开发环境下,如何在LPC1788处理器上移植μC/OS-II操作系统的过程与实现步骤,该移植与开发过程已成功地在LPC1788目标板上进行了运行测试。
1 μC/OS-Ⅱ内核结构及工作原理
1.1. μC/OS-Ⅱ系统结构
图1说明了μC/OS-II的软硬件体系结构。应用程序处于整个系统的顶层,每个任务都可以认为自己独占了CPU,因而可以设计成一个无限循环。μC/OS-II与处理器无关的代码,提供了μC/OS-II的系统服务,应用程序可以使用这些API函数进行内存管理、任务间通信及创建、删除任务。其中,μC/OS-II内核最核心的作用就是对任务的管理。

图1 μC/OS-II的系统总体结构图Fig.1 Structure diagram of μC/OS-II system
1.2 μC/OS-Ⅱ内核基本工作原理
μC/OS—II的任务拥有自己的代码和堆栈空间 (保存该任务的寄存器、返回地址和临时参数),一般都是空函数,不会返回任何值。任务执行一次后,设置延时参数OSTCBDly。……
