1. µC/OS-III 功能配置 (os_cfg.h)
os_cfg.h
用于确定应用程序所需的µC/OS-III功能,详细如下:
1.1杂项
- OS_CFG_APP_HOOKS_EN: 启用/禁用应用程序特定的钩子。
- OS_CFG_ARG_CHK_EN: 启用/禁用参数检查。
- OS_CFG_CALLED_FROM_ISR_CHK_EN: 启用/禁用中断服务程序(ISR)检查。
- OS_CFG_DBG_EN: 启用/禁用调试代码/变量。
- OS_CFG_TICK_EN: 启用/禁用内核滴答。
- OS_CFG_DYN_TICK_EN: 启用/禁用动态滴答。
- OS_CFG_INVALID_OS_CALLS_CHK_EN: 启用/禁用内核调用检查。
- OS_CFG_OBJ_TYPE_CHK_EN: 启用/禁用对象类型检查。
- OS_CFG_OBJ_CREATED_CHK_EN: 启用/禁用对象创建检查。
- OS_CFG_TS_EN: 启用/禁用时间戳。
- OS_CFG_PRIO_MAX: 定义最大任务优先级数。
- OS_CFG_SCHED_LOCK_TIME_MEAS_EN: 启用/禁用调度器锁定时间测量。
- OS_CFG_SCHED_ROUND_ROBIN_EN: 启用/禁用轮转调度。
- OS_CFG_STK_SIZE_MIN: 最小任务堆栈大小。
1.2 事件标志
- OS_CFG_FLAG_EN: 启用/禁用事件标志。
- OS_CFG_FLAG_DEL_EN: 包含
OSFlagDel()
代码。- OS_CFG_FLAG_MODE_CLR_EN: 包含清除事件标志的等待模式代码。
- OS_CFG_FLAG_PEND_ABORT_EN: 包含
OSFlagPendAbort()
代码。
1.3 内存管理
- OS_CFG_MEM_EN: 启用/禁用内存管理代码。
1.4 互斥锁
- OS_CFG_MUTEX_EN: 启用/禁用互斥信号量。
- OS_CFG_MUTEX_DEL_EN: 包含
OSMutexDel()
代码。- OS_CFG_MUTEX_PEND_ABORT_EN: 包含
OSMutexPendAbort()
代码。
1.5 消息队列
- OS_CFG_Q_EN: 启用/禁用消息队列。
- OS_CFG_Q_DEL_EN: 包含
OSQDel()
代码。- OS_CFG_Q_FLUSH_EN: 包含
OSQFlush()
代码。- OS_CFG_Q_PEND_ABORT_EN: 包含
OSQPendAbort()
代码。
1.6 信号量
- OS_CFG_SEM_EN: 启用/禁用信号量。
- OS_CFG_SEM_DEL_EN: 包含
OSSemDel()
代码。- OS_CFG_SEM_PEND_ABORT_EN: 包含
OSSemPendAbort()
代码。- OS_CFG_SEM_SET_EN: 包含
OSSemSet()
代码。
1.5 任务管理
- OS_CFG_STAT_TASK_EN: 启用/禁用统计任务。
- OS_CFG_STAT_TASK_STK_CHK_EN: 检查统计任务的堆栈。
- OS_CFG_TASK_CHANGE_PRIO_EN: 包含
OSTaskChangePrio()
代码。- OS_CFG_TASK_DEL_EN: 包含
OSTaskDel()
代码。- OS_CFG_TASK_IDLE_EN: 包含空闲任务。
- OS_CFG_TASK_PROFILE_EN: 包含OS_TCB中的概要变量。
- OS_CFG_TASK_Q_EN: 包含
OSTaskQXXXX()
代码。- OS_CFG_TASK_Q_PEND_ABORT_EN: 包含
OSTaskQPendAbort()
代码。- OS_CFG_TASK_REG_TBL_SIZE: 任务特定寄存器数量。
- OS_CFG_TASK_STK_REDZONE_EN: 启用/禁用堆栈红区。
- OS_CFG_TASK_STK_REDZONE_DEPTH: 堆栈红区深度。
- OS_CFG_TASK_SEM_PEND_ABORT_EN: 包含
OSTaskSemPendAbort()
代码。- OS_CFG_TASK_SUSPEND_EN: 包含
OSTaskSuspend()
和OSTaskResume()
代码。
1.6 任务本地存储管理
- OS_CFG_TLS_TBL_SIZE: 包含任务本地存储(TLS)寄存器代码。
1.7 时间管理
- OS_CFG_TIME_DLY_HMSM_EN: 包含
OSTimeDlyHMSM()
代码。- OS_CFG_TIME_DLY_RESUME_EN: 包含
OSTimeDlyResume()
代码。
1.8 定时器管理
- OS_CFG_TMR_EN: 启用/禁用定时器代码。
- OS_CFG_TMR_DEL_EN: 包含
OSTmrDel()
代码。
1.9 跟踪记录器
- OS_CFG_TRACE_EN: 启用/禁用µC/OS-III跟踪工具。
- OS_CFG_TRACE_API_ENTER_EN: 启用/禁用µC/OS-III API进入跟踪。
- OS_CFG_TRACE_API_EXIT_EN: 启用/禁用µC/OS-III API退出跟踪。
2. µC/OS-III 堆栈、系统任务和其他数据大小 (os_cfg_app.h)
通过os_cfg_app.h
用户可以指定空闲任务、统计任务、滴答任务、定时器任务和ISR处理任务的堆栈大小,以及任务优先级、时钟滴答等。
- OS_CFG_ISR_STK_SIZE: ISR堆栈大小(CPU_STK元素数量)
- OS_CFG_MSG_POOL_SIZE: 最大消息数
- OS_CFG_TASK_STK_LIMIT_PCT_EMPTY: 堆栈限制位置(空余百分比)
- OS_CFG_IDLE_TASK_STK_SIZE: 空闲任务堆栈大小
- OS_CFG_STAT_TASK_PRIO: 统计任务优先级
- OS_CFG_STAT_TASK_RATE_HZ: 统计任务执行频率(1到10 Hz)
- OS_CFG_STAT_TASK_STK_SIZE: 统计任务堆栈大小
- OS_CFG_TICK_RATE_HZ: 系统时钟频率(10到1000 Hz)
- OS_CFG_TMR_TASK_PRIO: 系统定时器任务优先级
- OS_CFG_TMR_TASK_STK_SIZE: 系统定时器堆栈大小
- OS_CFG_TMR_TASK_RATE_HZ: 系统定时器频率
3. µC/OS-III 数据类型 (os_type.h)
os_type.h
定义了构建应用程序时使用的µC/OS-III特定数据类型,指定了表示任务优先级、信号量计数等变量的大小。需根据CPU的自然字大小进行调整。