μCOSII与μCOSIII移植比较-1-μCOSII与μCOSIII移植的不同之处杨四郎不管是μCOSII还是μCOSIII的移植,都应该以Micrium官方的移植说明为准,并参考官方的移植工程,实现自己的移植。对于μCOSII,先看其体系结构,如图1。图1μC/OS—II的硬件和软件体系结构由图1可知,μCOSII系统的代码主要分为与处理器无关的部分和与处理器有关的部分,当然移植自然是改动与处理器相关的三个文件:OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C。移植工作主要完成以下工作:(注意:以下四点对于不同的μCOSII版本,在数字上有所差异,比如第3点,在V2.85版里面就是编写10个简单的C语音函数)1.用#define设置一个常量的值(OS_CPU.H);μCOSII与μCOSIII移植比较-2-2.声明10个数据类型(OS_CPU.H);3.用C语言编写6个简单的函数(OS_CPU_C.C);4.编写四个汇编语言函数(OS_CPU_A.ASM)再看Micrium的官方移植工程,移植的过程主要是学习它的一份ApplicationNote(应用笔记AN-1018,AN-1320),如下图2。图2各模块之间的关系在官方的移植版本中,可以看到增加了一个Section6BSP(板级支持包),该部分主要是针对自己所使用的硬件电路板的资源所写的一些文件,看官方的描述:μCOSII与μCOSIII移植比较-3-在应用程序Section5里面可以看到除了应用程序APP.C以外,还多了APP_VECT.C,APP_CFG.H,OS_CFG.H,INCLUDES.H。其作用正如官方描述:而OS_CFG.H是用来配置μCOSII系统的,直接在相应文件夹下copy过来即可。其实,我们真正在移植的时候,Section6的里面的内容我们完全可以在应用程序APP.C中实现相应的部分即可。Section5里面的APP_VECT.C、APP_CFG.H也可根据自己的需要编写即可,当然这两个文件不要都行,你可能已经发现网上的很多μCOSII移植方法里面根本就没有要这两个文件。至于INCLUDES.H,上面的英文解释得很清楚,如果你不要的话,那你写应用程序的时候写一大堆#include……也是可以的。具体移植过程,请参考:μCOSII与μCOSIII移植比较-4-至于μCOSIII的移植,同上面一样,先看其体系结构,如图3。图3μCOSIII的体系结构由此图明显可以看到,与CPU相关(CPUSpecific)的部分除了(1)中的μCOSII与μCOSIII移植比较-5-四个文件(其中的os_cpu_a.inc基本不用管)外,还有(2)中μC/CPU文件夹里面的一堆文件。这也就说明:要移植μCOSIII,至少要移植源代码文件夹下面的μCOSIII文件夹和μC/CPU文件夹下的相关内容,我们不妨看看官方怎么说的:也就是说μCOSIII移植过程是:①修改3个内核文件:os_cpu.h、os_cpu_a.asm、os_cpu_c.c;②修改3个CPU文件:cpu.h、cpu_a.asm、cpu_c.c;③创建适应于自己硬件电路板的板级支持包(BSP)。官方目前针对STM32F107评估板有μCOSIII的移植版本。官网注册一下就可以下载,对于IAR、KeilMDK和TrueSTUDIO三种开发环境都有,我们要注意根据自己所使用的开发环境选择一个进行简单的修改,即可快速移植到自己的目标板上。具体移植过程,参考下面:Keil版:版: