Appearance
RT-Thread API参考手册: RT-Thread 简介
宏定义
配置
内核部分
c
/*表示内核对象的名称的最大长度,若代码中对象名称的最大长度大于宏定义的长度,*多余的部分将被截掉。*/
#define RT_NAME_MAX 8
/*字节对齐时设定对齐的字节个数。常使用ALIGN(RT_ALIGN_SIZE)进行字节对齐。*/
#define RT_ALIGN_SIZE 4
/*定义系统线程优先级数;通常用RT_THREAD_PRIORITY_MAX-1定义空闲线程的优先级*/
#define RT_THREAD_PRIORITY_MAX 32
/*定义时钟节拍,为100时表示100个tick每秒,一个tick为10ms*/
#define RT_TICK_PER_SECOND 100
/*检查栈是否溢出,未定义则关闭*/
#define RT_USING_OVERFLOW_CHECK
/*定义该宏开启debug模式,未定义则关闭*/
#define RT_DEBUG
/*开启debug模式时:该宏定义为0时表示关闭打印组件初始化信息,定义为1时表示启用*/
#define RT_DEBUG_INIT 0
/*开启debug模式时:该宏定义为0时表示关闭打印线程切换信息,定义为1时表示启用*/
#define RT_DEBUG_THREAD 0
/*定义该宏表示开启钩子函数的使用,未定义则关闭*/
#define RT_USING_HOOK
/*定义了空闲线程的栈大小*/
#define IDLE_THREAD_STACK_SIZE 256
线程间同步
c
/*定义该宏可开启信号量的使用,未定义则关闭*/
#define RT_USING_SEMAPHORE
/*定义该宏可开启互斥量的使用,未定义则关闭*/
#define RT_USING_MUTEX
/*定义该宏可开启事件集的使用,未定义则关闭*/
#define RT_USING_EVENT
/*定义该宏可开启邮箱的使用,未定义则关闭*/
#define RT_USING_MAILBOX
/*定义该宏可开启消息队列的使用,未定义则关闭*/
#define RT_USING_MESSAGEQUEUE
/*定义该宏可开启信号的使用,未定义则关闭*/
#define RT_USING_SIGNALS
内存管理
c
/*开启静态内存池的使用*/
#defineRT_USING_MEMPOOL
/*定义该宏可开启两个或以上内存堆拼接的使用,未定义则关闭*/
#defineRT_USING_MEMHEAP
/*开启小内存管理算法*/
#defineRT_USING_SMALL_MEM
/*关闭SLAB内存管理算法*/
/*#defineRT_USING_SLAB*/
/*开启堆的使用*/
#defineRT_USING_HEAP
内核设备对象
c
/*表示开启了系统设备的使用*/
#define RT_USING_DEVICE
/*定义该宏可开启系统控制台设备的使用,未定义则关闭*/
#define RT_USING_CONSOLE
/*定义控制台设备的缓冲区大小*/
#define RT_CONSOLEBUF_SIZE 128
/*控制台设备的名称*/
#define RT_CONSOLE_DEVICE_NAME "uart1"
自动初始化
c
/*定义该宏开启自动初始化机制,未定义则关闭*/
#define RT_USING_COMPONENTS_INIT
/*定义该宏开启设置应用入口为main函数*/
#define RT_USING_USER_MAIN
/*定义main线程的栈大小*/
#define RT_MAIN_THREAD_STACK_SIZE 2048
FinSH
c
/*定义该宏可开启系统FinSH调试工具的使用,未定义则关闭*/
#define RT_USING_FINSH
/*开启系统FinSH时:将该线程名称定义为tshell*/
#define FINSH_THREAD_NAME "tshell"
/*开启系统FinSH时:使用历史命令*/
#define FINSH_USING_HISTORY
/*开启系统FinSH时:对历史命令行数的定义*/
#defineFINSH_HISTORY_LINES 5
/*开启系统FinSH时:定义该宏开启使用Tab键,未定义则关闭*/
#define FINSH_USING_SYMTAB
/*开启系统FinSH时:定义该线程的优先级*/
#define FINSH_THREAD_PRIORITY 20
/*开启系统FinSH时:定义该线程的栈大小*/
#define FINSH_THREAD_STACK_SIZE 4096
/*开启系统FinSH时:定义命令字符长度*/
#define FINSH_CMD_SIZE 80
/*开启系统FinSH时:定义该宏开启MSH功能*/
#define FINSH_USING_MSH
/*开启系统FinSH时:开启MSH功能时,定义该宏默认使用MSH功能*/
#defineFINSH_USING_MSH_DEFAULT
/*开启系统FinSH时:定义该宏,仅使用MSH功能*/
#defineFINSH_USING_MSH_ONLY
MCU
c
/*定义该工程使用的MCU为STM32F103ZE;系统通过对芯片类型的定义,来定义芯片的管脚*/
#define STM32F103ZE
/*定义时钟源频率*/
#define RT_HSE_VALUE 8000000
/*定义该宏开启UART1的使用*/
#define RT_USING_UART1
常见的宏定义
- rt_inline,定义如下,static关键字的作用是令函数只能在当前的文件中使用;inline表示内联,用static修饰后在调用函数时会建议编译器进行内联展开。
c
#define rt_inline static __inline
- RT_USED,定义如下,该宏的作用是向编译器说明这段代码有用,即使函数中没有调用也要保留编译。例如RT-Thread自动初始化功能使用了自定义的段,使用RT_USED会将自定义的代码段保留。
c
#define RT_USED __attribute__((used))
- RT_UNUSED,定义如下,表示函数或变量可能不使用,这个属性可以避免编译器产生警告信息。
c
#define RT_UNUSED __attribute__((unused))
- RT_WEAK,定义如下,常用于定义函数,编译器在链接函数时会优先链接没有该关键字前缀的函数,如果找不到则再链接由weak修饰的函数。
c
#define RT_WEAK __weak
- ALIGN(n),定义如下,作用是在给某对象分配地址空间时,将其存放的地址按照n字节对齐,这里n可取2的幂次方。字节对齐的作用不仅是便于CPU快速访问,同时合理的利用字节对齐可以有效地节省存储空间。
c
#define ALIGN(n) __attribute__((aligned(n)))
- RT_ALIGN(size,align),定义如下,作用是将size提升为align定义的整数的倍数,例如,RT_ALIGN(13,4)将返回16。
c
#define RT_ALIGN(size, align) (((size) + (align) - 1) & ~((align) - 1))