编程语言
首页 > 编程语言> > UCOSIII总结(2)——源码架构

UCOSIII总结(2)——源码架构

作者:互联网

准确理解µC/OS-III的源码,对顺利移植OS、建立应用程序非常有帮助。下面将介绍µC/OS-III源码的架构:

ucosiii源码架构示意框图

从图中可以看出,与ucOS密切相关的硬件是CPU、定时器和中断控制器,当然,MCU还有其他的外设,在BSP中要用到,只是这里没有列出。

除去硬件,整个µC/OS-III源码架构包含9个模块,下面分别予以介绍:

应用层模块

应用程序代码由项目文件组成。为了方便,这里简单统称为app.c和app.h,事实上应用层可以包含任意数量的文件,而不仅仅只有app.*。 主应用程序代码含有main()函数。

与内核无关的CPU文件

半导体厂商通常以源代码形式提供库函数,以访问其CPU或MCU上的外设。这些库非常有用,可以提高效率,节省宝贵时间。由于这些文件没有统一的命名规范,因此这里设为为* .c和* .h。

BSP模块

µC / OS-III所需的板级支持软件包(BSP)代码通常比较简单。µC / OS-III一般仅要求初始化用于延时和超时的周期性中断源(OS用定时器),将此功能放置在bsp_os.c源文件中,其对应头文件bsp_os.h。

与CPU无关的OS内核模块

这部分代码可以不做任何修改移植到所支持的CPU上,内容包括:

与CPU相关的OS内核模块

这是适用于特定CPU架构的µC / OS-III代码,称为端口(Ports)。

与特定CPU相关的模块uC/CPU

Micrium封装了CPU的功能,这些文件定义了用于禁用和使能中断的函数,以及独立于所用CPU和编译器的CPU_???命名的数据类型,另外还有一些其他功能。

uC库文件

µC/LIB包含一系列源文件,它们提供一些常用功能,例如内存复制,字符串和与ASCII相关的函数,可以使用库中的函数替换编译器提供的stdlib标准库函数。提供这些库文件是为了确保它们可以在应用程序之间(尤其是在编译器之间)完全可移植。µC / OS-II内核不使用这些文件,但µC / CPU使用。

编译器相关模块

这是一个可选模块,大部分情况下应该用不到。一些编译器提供了线程本地存储(TLS)的扩展,这些扩展提供了一个可变区域,线程可以在其中存储状态以使多线程环境更安全。这些功能的调整在uCOS-III \ TLS \ <tool>文件夹下的os_tls.c文件中执行,其中<tool>是工具制造商的名称或工具名称。

配置头文件

配置文件在OS源码中分散在各个模块的Cfg文件夹中。配置文件的内容:

通过改变这些配置文件里的宏值,可以方便地裁剪OS的功能。

 

标签:UCOSIII,架构,函数,os,代码,源码,III,OS,CPU
来源: https://blog.csdn.net/tuxinbang1989/article/details/117021672