在此我们给系统定义基本的数据类型如下:
typedef unsigned char uOS8_t; typedef char sOS8_t; typedef unsigned short uOS16_t; typedef signed short sOS16_t; typedef unsigned int uOS32_t; typedef signed int sOS32_t; typedef uOS32_t uOSStack_t; typedef sOS32_t sOSBase_t; typedef uOS32_t uOSBase_t; typedef uOS32_t uOSTick_t; typedef enum {OS_FALSE = 0, OS_TRUE = !OS_FALSE} uOSBool_t; typedef enum {OS_SUCESS = 0, OS_ERROR = !OS_SUCESS} uOSStatus_t;
数据类型中的下划线 _t代表Type
下面我们定义一些和具体平台相关的一些参数,也就是和STM32F1相关的参数
#define FITSTACK_GROWTH ( -1 ) #define FITBYTE_ALIGNMENT ( 8 )
因为是和平台相关的,我们定义相关参数的前缀为FIT,代表需要根据不同的芯片类型进行调整。用此前缀也便于提醒用户,在进行系统移植时,一定要注意带有前缀fit相关的参数、变量和函数;
上述宏定义的参数中FITSTACK_GROWTH 代表栈增长的方向, 我们用-1代表从高位置向低位置增长,用1代表从低位置向高位值增长;宏定义参数FITBYTE_ALIGNMENT代表数据对齐方式;在Cortex-M3系列的STM32F1芯片中,栈增长方向为从高到低,我们定义为-1,芯片为32位宽的,我们定义8字节对齐;这两个参数对嵌入式操作系统的内存布局影响非常大,后面我们会具体分析!