UCOSIII简介
UCOSIII是一个可裁剪,可固化,可剥夺的多任务系统。相比于前代产品其最大任务数目没有限制,优先级相同的任务数目没有限制且有无需调度的的发送机制。
UCOSIII文件
在移植UCOSIII之前我们需要准备两样东西:一个是UCOSIII的源码,一个是Micrium官方在STM32F1xx上移植好的工程文件。
在Micrium文件夹中有四个文件夹
1、EvaBoards文件夹
这个文件夹里面就是关于STM32F107的工程文件。其中的处app.c和stm32f10x_conf.h外的文件的八个文件使我们需要添加到工程文件当中的。
2、uC-CPU文件夹
这个文件夹里面是与CPU相关的代码,有下面几个文件:
1)cpu_core.c文件包括了所有CPU架构的C代码。该文件包含了用来测量中观关闭时间的函数,还包含一个可模仿前导码零计算以及其他的函数。
2)cpu_core.h文件包含了1中的函数原型证明,以及用来测量中断关闭的时间变量。
3)cpu_def.h文件包含了uC/CPU模块使用的各种define常量。
4)ARM-Cortex-M3文件夹有GUN,IAR,RealView文件夹,我们使用的是KeilMDK编译器,则需要看RealView文件夹下的cpu.h包含了一些类型定义使UCOSIII和其他模块可与cpu的架构和编译器的字宽度无关,cpu_a.asm包含了一些用汇编语言编写的函数用来开中断和关中断计算前导零,以及其他一些只能用汇编语言编写的与COU相关的函数,这个文件中函数可以从C代码中调用和cpu_c.c包含了一些基于特定CPU架构但为了可移植而用C语言编写的函数C代码文件。(作为一个普通原则,除非汇编语言能显著提高性能,投资精良用C语言编写函数)。
3、uC-LIB文件
uC-LIB石油一些可移植并且与编译器无关的函数组成,UCOSIII不适用uC-LIB中的函数,但是UCOSIII和uC-CPU嘉定lib_def.h是存在的,uC-LIB有下面几个文件
1)lib_ascii.h和lib-ascii.c文件提供ASCII_ToLower()、ASCII_ToUpper()、ASCII_IsAlpha()和ASCII_IsDig()等函数,他们可以分别代替标准可函数tolower()、toupper()、isalpha()和isdigit()等。
2)lib_def.h文件定义了许多常量,如TURE/FALSE、YES/NO、ENABLE/DISABLE以及各种进制的常量。而且还为常见数学计算定义了宏。
3)lib_math.h和lib_math.c文件包含了Math_Rand()、Math_SetRand()等函数的源代码,可用来替代标准函数库menclr()、memset()、memcpy()、memcmp()等。
4)lib_mem.c和lib_mem.h文件包含了Mem_Clr()、Mem_Set()、MemCopy()、Mem_Cmp()等函数的源代码可用来替代标准库函数的memclr()、memset()、memcpy()、memcmp()等
5)lib_str.c和lib_str.h文件包含了Str_Lenr()、Str_Copy()和Str_Cmp()等函数的源代码,可用于替代标准函数strlen()、strcpy()和strcmp()等。
6)lib_mem_a.asm文件包含了lib_men.c函数的汇编优化版。
4、uCOS-III文件
这个文件夹有两个文件Ports文件与CPU平台有关和Sourse里面为UCOSIII的源码。
UCOSIII的移植
1.在工程目录中新建一个UCOSIII的文件夹,然后将uC-CPU、uC-LIB和UCOS-III这三个文件复制到工程中
2.在UCOSIII文件夹中新建两个文件夹:UCOS_BSP和UCOS_CONFIG
3.向UCOS_CONFIG添加文件
4.向UCOS_BSP添加文件
5.向工程中添加分组
6.修改bsp.c和bsp.h
7.修改os_cpu_a.asm
8.修改os_cpu_c.c
9.修改os_cfg_app.h
10.修改SYSTEM文件夹sys.h文件
上一篇:STM32F4学习笔记7——USART Part2
下一篇:stm32NVIC中断优先管理
推荐阅读最新更新时间:2024-11-13 10:20