μc/osIII的目录与文件

μc/os-III的文件目录注解

应用程序

app.c和app.h,可包含任意数目的文件,mian()函数通常在里面

CPU

半导体厂商提供的库函数源代码,用于访问他们生产的CPU或MCU外设,没有一定的命名规范

BSP板级支持包

操作系统和目标板外设的交互交互代码

μC/OS-III(cpu无关代码)

由具有高度可移植性的ANSI C编写

μC/OS-III(cpu相关代码)

os_cpu.h ;os_cpu_a.asm;os_cpu_c.c,这部分代码需要根据特定的CPU架构进行修改,该过程称为移植

μC/CPU(cpu相关代码)

定义了打开和关闭中断的函数、与cpu和使用编译器有关的CPU_???数据类型和一些其它函数

μC/LIB(可移植库函数)

一系列提供通用函数的源文件,如内存复制、字符串和ASCII码的相关函数

配置文件

在移植时,这5个文件是移植时复制到工程目录下,然后根据我们的工程需求进行修改:
os_cfg.h 确定μc/os-III的哪些功能是应用程序需要的
os_cfg_app.h 配置#define常量,配置空闲任务堆栈大小、时钟节拍的频率
cpu_cfg.h 定义是否开启中断关闭时间的测量功能,定义用汇编还是C实现前导零计算指令等等
lib_cfg.h 定义是否开启汇编语言优化功能以及其他一些宏
(补充os_type.h 包含μc/os-III数据类型的声明,移植的时候可以修改)

\Micrium    存放Micriμm提供的软件和工程文件,位于计算机的根目录
    \Software    包含所有软件和工程文件
    
        \Evalboards    包含Micriμm支持的评估板的相关文件
            \<maunfacturer>    评估板厂家的名字
                \<board name>    评估板的名字
                    \<compiler>    编译评估板程序的编译器或者厂家名字
                        \<project name>    工程名字
                            \app.c    工程源代码
                            \app.h    
                            \other
                        \BSP    名称固定为BSP,板级支持包
                            \*.*    bsp的源文件,如bsp_led.c等等,通常bsp.c和bsp.h放在一起
                                                
        \CPU 名称固定为cpu
            \<manufacture>    提供外设库的半导体厂商的名字
                \<architecture>    特定库的名字,通常与CPU名称和结构有关
                    \*.*    库源文件,由厂家命名
                    
        \μc/os-III    μc/os-III的主目录
            \Cfg\Template    存放配置文件的模板,可以复制应用到我们的工程中,根据需要进行修改
                \os_app_hooks.c    说明如何供μc/os-III调用的用户介入函数,其中包含8个空函数
cfg1************\os_cfg.h    确定μc/os-III的哪些功能是应用程序需要的
cfg2************\os_cfg_app.h    配置#define常量,配置空闲任务堆栈大小、时钟节拍的频率(tick_rate)、任务优先级等等
            \Source    存放着与CPU无关的代码,建工程时该目录中的所有文件都是必须的,通过配置os_cfg.h和os_cfg_app.h两个头文件可裁剪掉那些不需要的功能,编译时编译器便不会对它们进行处理
                \os_cfg_app.c    宏定义声明变量和数组
                \os_core.c    包含内核功能模块,如初始化μc/os-III的OSInit()、任务级调度的OSSched()、中断级调度的OSIntExit()等等
                \os_dbg.c    包含内核调试器或者μc/Probe使用的常量的声明
                \os_flag.c    包含事件标志的管理
                \os_int.c    包含中断处理任务的处理
                \os_mem.c    μc/os-III提供的消息队列和任务专用的消息队列
                \os_msg.c    包含消息处理的代码,消息队列和任务专用的消息队列两个服务的通用代码
                \os_mutex.c    互斥型信号量的管理
                \os_pend_multi.c    包含允许任务同时等待多个信息量或多个消息队列的代码
                \os_prio.c    包含位映射表的管理代码,用于追踪已经就绪的任务
                \os_q.c    包含消息队列的管理代码
                \os_sem.c    包含信号量的管理代码
                \os_stat.c    包含统计任务的代码。统计任务用于计算CPU的使用率以及各个任务的CPU使用率
                \os_task.c    包含任务的管理代码,包括OSTaskCreate()、OSTaskDel()、OSTaskChangePrio()等
                \os_tick.c    包含可管理正在延时和超时等待的任务代码
                \os_time.c    包含使任务延时的代码
                
                \os_tmr.c    包含软件定时器的管理代码
                \os_var.c    包含μc/os-III的全局变量,它们不能被应用程序访问
                \os.h    包含μc/os-III主要的头文件,声明了常量、宏、μc/os-III全局变量、函数原型等
cfg3************\os_type.h    包含μc/os-III数据类型的声明,移植的时候可以修改
            \Ports    存放所使用的CPU架构的移植文件
                \<architecture>    μc/os-III移植到CPU架构的名字
                    \<compiler>    用于编译移植代码的编译器或者厂商的名字,该目录包含移植文件
                        \os_cpu.h    包含OS_TASK_SW()的宏定义,以及函数原型OSCtwSw()、OSIntCtxSw()和OSStartHighRdy()等的声明
                        \os_cpu_a.asm    包含汇编函数OSCtxSw()、OSIntCtxSw()、OSStartHighRdy()等
                        \os_cpu_c.c    包含移植专用介入函数的C代码,以及创建任务时用来初始化任务堆栈的代码
                        
        \uC-CPU    μc/CPU的主目录
            \cpu_core.c    适用于所有CPU架构的C代码,包含用来测量中断关闭时间的函数、包含可模仿前导零计算指令的函数
            \cpu_core.h    cpu_core.c的头文件,包含函数原型的声明,测量中断关闭时间的变量定义
            \cpu_def.h    包含μc/CPU模块使用的各种#define常量
            \Cfg\Template    包含一个可配置的模板文件
cfg4************\cpu_cfg.h    定义是否开启中断关闭时间的测量功能,是用汇编语言还是C语言实现前导零计算指令等等
            \<architecture>    μc/os-III移植的目标CPU架构的名字
                \<compiler>    用于编译移植代码的编译器或者厂商的名字,该目录包含移植文件
                    \cpu.h    包含一些类型的定义,使μc/os-III和其它模块可与CPU架构和编译器字宽度无关
                    \cpu_a.asm    包含汇编语言写的函数,用来开关中断、计算前导零,以及只能用汇编语言写的与CPU相关的函数,可能还包含使能缓存、建立MPUs和MMU等的函数,该文件中的函数可以从C代码中调用
                    \cpu_c.c    基于特定CPU架构但为了可移植而用C语言编写的函数(除非汇编能显著提升性能,否则尽量用C语言)
                    
        \uC-LIB    μC/LIB主目录
            \lib_ascii.c    提供ASCLL_ToLower()、ASCII_ToUpper()、ASCLL_IsAlpha()和ASCII_IsDig等函数,可替换标准库中的相应函数
            \lib_ascii.h
            \lib_def.h    定义了许多常量,如TRUE\FLASE,YES\ON以及各种进制常量等等,将一些函数名为英文小写定义为大写
            \lib_math.c    定义相关数学函数Math_Rand()、Math_SetSeed()等,替换标准库中的相应函数
            \lib_math.h    
            \lib_mem.c    定义包含Mem_Clr()、Mem_Set()、Mem_Copy()、Mem_Cmp等函数源代码,替换标准库相应函数
            \lib_mem.h
            \lib_str.c    定义包含Str_Lenr()、Str_Copy()和Str_Cmp()等函数源代码替换标准库相应函数
            \lib_str.h
            \Cfg\Template    包含一个模板文件
cfg5************\lib_cfg.h      定义是否开启汇编语言优化功能以及其他一些宏
            \Ports    包含了优化后的汇编语言文件,针对特定的CPU架构,由高效率汇编语言替代一些C语言
                \<architecture>
                    \<compiler>
                        \lib_mem_a.asm    包含了lib_mem.c的汇编优化版
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值