1. lib_def.h
主要定义了一些宏定义
这些宏对常数的宏定义 0,1等
对可能用到的和环境有关的数值的定义,譬如一个月有多少天,一天多少小时等
2.lib_mem
内存操作配置是否检测EXT
LIB_MEM_CFG_ARG_CHK_EXT_EN 在ucos中就叫做配置宏,配置ucos内核的可选项
ucos本身设计的时候 ,设计了很多属性,但是这些属性可是定或者不能使能
可通过配置宏来配置项目,在预处理的时候,来把UCOS内核的这些特性加上或去掉
app/app_cfg.h 这个文件是设计用来在app层去配置ucos的,按照ucos 的设计,我们需要在这个文件中去用宏定义来配置ucos的属性
主要是内存池相关的内容!!!
3.lib_str
ucos2中自己定义实现了一套字符串处理函数,而没有使用编译器自带的字符串处理函数
为了让操作系统不依赖与外部的环境也可以使用对应的库
u32 a = 123; // a是一个u32类型的数字,以16进制的形式存在于内存中的
我们需求:将u32类型的a转成一个字符串”123”
“123”这个字符串是一个字符串,包含4个字节,第1个字节是字符’1’,第4个字符是’\0’。
实现:根据u32类型的a,通过除法和取余两种操作来将u32类型的a分成几个数字(也就是将123分成1、2、3三个数字),然后再将1、2、3这种数字转成字符,然后拼起来成为字符串。
数字1的ASCII码是1+’0’
4.lib_mem_a.asm
(1)该文件实现了一个函数mem_cpy,这个函数是用来进行内存的拷贝的。内存的拷贝是在RTOS中非常重要,内核实现也会需要用到内存拷贝,所以效率要求比较高,所以用汇编来实现。
(2)为什么uCOS2中有些东西要用汇编来实现?2个原因:一个是效率更高,另一个是不得不用汇编因为C实现不了。
(3)EXPORT是ARM汇编的一个关键字,用来从ARM汇编文件中导出一个符号,导出后这个符号就可以在其他C语言源文件或者汇编源文件中引用了,作用非常类似于C中的extern。
https://blog.csdn.net/qq_29344757/article/details/77102170
ATPCS