打印
[应用相关]

按需配置最适的工程uCOS

[复制链接]
705|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
littlelida|  楼主 | 2021-11-1 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
os_cfg.h 文件是系统的配置文件,主要是让用户自己配置一些系统默认的功能,用户可以选择某些或者全部的功能,比如消息队列、信号量、互斥量、事件标志位等,系统默认全部使用的,如果如果用户不需要的话,则可以直接关闭,在对应的宏定义中设置为0即可,这样子就不会占用系统的SRAM,以节省系统资源,os_cfg.h 文件的配置说明具体见代码清单

1 #ifndef OS_CFG_H
2 #define OS_CFG_H
3
4
5 /* --- 其他配置 --- */
6 #define OS_CFG_APP_HOOKS_EN 1u /* 是否使用钩子函数 */
7 #define OS_CFG_ARG_CHK_EN 1u /* 是否使用参数检查 */
8 #define OS_CFG_CALLED_FROM_ISR_CHK_EN 1u /* 是否使用中断调用检查 */
9 #define OS_CFG_DBG_EN 1u /* 是否使用debug */
10 #define OS_CFG_ISR_POST_DEFERRED_EN 1u /* 是否使用中断延迟post 操作*/
11 #define OS_CFG_OBJ_TYPE_CHK_EN 1u /* 是否使用对象类型检查 */
12 #define OS_CFG_TS_EN 1u /* 是否使用时间戳 */
13
14 #define OS_CFG_PEND_MULTI_EN 1u /*是否使用支持多个任务pend 操作*/
15
16 #define OS_CFG_PRIO_MAX 32u /*定义任务的最大优先级 */
17
18 #define OS_CFG_SCHED_LOCK_TIME_MEAS_EN 1u /*是否使用支持测量调度器锁定时间 */
19 #define OS_CFG_SCHED_ROUND_ROBIN_EN 1u /* 是否支持循环调度 */
20 #define OS_CFG_STK_SIZE_MIN 64u /* 最小的任务堆栈大小 */
21
22
23 /* ---------- 事件标志位---------- */
24 #define OS_CFG_FLAG_EN 1u /*是否使用事件标志位 */
25 #define OS_CFG_FLAG_DEL_EN 1u /*是否包含OSFlagDel()的代码 */
26 #define OS_CFG_FLAG_MODE_CLR_EN 1u /*是否包含清除事件标志位的代码 */
27 #define OS_CFG_FLAG_PEND_ABORT_EN 1u /*是否包含OSFlagPendAbort()的代码*/
28
29
30 /* --------- 内存管理 --- */
31 #define OS_CFG_MEM_EN 1u /* 是否使用内存管理 */
32
33
34 /* -------- 互斥量 ----- */
35 #define OS_CFG_MUTEX_EN 1u /*是否使用互斥量 */
36 #define OS_CFG_MUTEX_DEL_EN 1u /*是否包含OSMutexDel()的代码*/
37 #define OS_CFG_MUTEX_PEND_ABORT_EN 1u /*是否包含OSMutexPendAbort()的代码 */
38
39
40 /* ------- 消息队列--------------- */
41 #define OS_CFG_Q_EN 1u /* 是否使用消息队列 */
42 #define OS_CFG_Q_DEL_EN 1u /* 是否包含OSQDel()的代码 */
43 #define OS_CFG_Q_FLUSH_EN 1u /* 是否包含OSQFlush()的代码 */
44 #define OS_CFG_Q_PEND_ABORT_EN 1u /* 是否包含OSQPendAbort()的代码 */
45
46
47 /* -------------- 信号量 --------- */
48 #define OS_CFG_SEM_EN 1u /*是否使用信号量 */
49 #define OS_CFG_SEM_DEL_EN 1u /*是否包含OSSemDel()的代码 */
50 #define OS_CFG_SEM_PEND_ABORT_EN 1u /*是否包含OSSemPendAbort()的代码*/
51 #define OS_CFG_SEM_SET_EN 1u /*是否包含OSSemSet()的代码 */
52
53
54 /* ----------- 任务管理 -------------- */
55 #define OS_CFG_STAT_TASK_EN 1u /* 是否使用任务统计功能 */
56 #define OS_CFG_STAT_TASK_STK_CHK_EN 1u /* 从统计任务中检查任务堆栈 */
57
58 #define OS_CFG_TASK_CHANGE_PRIO_EN 1u /* 是否包含OSTaskChangePrio()的代码*/
59 #define OS_CFG_TASK_DEL_EN 1u /* 是否包含OSTaskDel()的代码*/
60 #define OS_CFG_TASK_Q_EN 1u /*是否包含OSTaskQXXXX()的代码*/
61 #define OS_CFG_TASK_Q_PEND_ABORT_EN 1u /* 是否包含OSTaskQPendAbort()的代码 */
62 #define OS_CFG_TASK_PROFILE_EN 1u /* 是否在OS_TCB 中包含变量以进行性能分析 */
63 #define OS_CFG_TASK_REG_TBL_SIZE 1u /*任务特定寄存器的数量 */
64 #define OS_CFG_TASK_SEM_PEND_ABORT_EN 1u /* 是否包含OSTaskSemPendAbort()的代码 */
65 #define OS_CFG_TASK_SUSPEND_EN 1u /*是否包含OSTaskSuspend()和
66 OSTaskResume()的代码*/
67
68 /* ------- 时间管理 ------- */
69 #define OS_CFG_TIME_DLY_HMSM_EN 1u /*是否包含OSTimeDlyHMSM()的代码*/
70 #define OS_CFG_TIME_DLY_RESUME_EN 1u /*是否包含OSTimeDlyResume()的代码*/
71
72
73 /* ---------- 定时器管理 ------- */
74 #define OS_CFG_TMR_EN 1u /* 是否使用定时器 */
75 #define OS_CFG_TMR_DEL_EN 1u /* 是否支持OSTmrDel() */
76
77 #endif


使用特权

评论回复
沙发
小叶三千| | 2021-11-2 08:16 | 只看该作者
支持的打开就是写1,不支持的,或者是用不到的就可以写0,可以减少内存的占用

使用特权

评论回复
板凳
tpgf| | 2021-12-1 08:58 | 只看该作者
这样可以减少资源浪费哈

使用特权

评论回复
地板
磨砂| | 2021-12-1 09:11 | 只看该作者
可以自己手动修改吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

955

帖子

2

粉丝