新闻中心

EEPW首页>嵌入式系统>设计应用> 配置自己的UC/OS―II操作系统

配置自己的UC/OS―II操作系统

作者: 时间:2016-09-12 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/201609/305159.htm

一. 服务功能的配置:

根据程序中的实际情况,保留自己要用的系统服务功能,删除自己不需要的服务功能。进行合理配置后,是我们自己系统的目标代码比较紧凑,从而降低了对程序代码存储空间的要求。如果代码存储空间足够大的话,那就将全部系统服务功能全部配置为1。不需要考虑功能裁剪。

2 任务管理功能的裁剪

1. OS_Task_CREATE_EN

l 作用:设定控制用户程序是否使用OSTaskCreate()函数。

l 说明:如果要使用,则应将其设置为1;否则设置为0以节省内存。

注:

1.在UC/OS中建议使用函数OSTaskCreateExt()来建立任务。

2.在配置时OS_TASK_CREATE_EN()和OS_TASK_CREATE_EXT_EN()至少有一个要为1。

2. OS_TASK_CREATE_EXT_EN

l 作用:设置程序中是否使用OSTaskCreateExt().

l 说明:如果要使用,则将其设置为1.否则将其设置为0,以节省内存。

注:若程序中如果要使用堆栈检查函数OSTaskStkChk(),则必须使用函数OSTaskCreateExt()建立任务。

3. OS_TASK_DEL_EN

l 作用:设定程序中是否使用删除任务函数OSTaskDel()

l 说明:如果要使用,则设为1,否则设为0。以节省内存。

4. OS_TASK_SUSPEND_EN

l 作用:设定程序中使用任务挂起和唤醒函数OSTaskSupend()和OSTaskResume().

l 说明:如果要使用,则设为1,否则设为0.以节省内存。

5. OS_TASK_STAT_EN

l 作用:设置系统是否使用UC/OS中的统计任务OSTaskStat()及其初始化函数。

l 说明:设为1,则使用统计任务。统计任务每秒运行一次,计算当前系统CPU使用频率并把结果保存在8位全局变量OSCPUUsage中。每次运行,OSTaskStat()都将调用函数OSTaskStatHook(),用户自定义的统计功能可以放在这个函数中。若设为0时,UC/OS在系统初始化时,全局变量OSCPUUsage,OSIdleCtrMax,OSIdleCtrRun和OSStatRdy都将不被声明,以节省内存空间

注:OSTaskStat()的优先级总是自动设为OS_LOWEST_PRIO-1。

6. OS_TASK_CHANGE_PRIO_EN

l 作用:设定程序中是否使用UC/OS的改变任务优先级函数OSTaskChangePrio().

l 说明:如果要使用,则应将其设为1。否则将其设为0.关闭此常量以节省内存

7. OS_TASK_QUERY_EN

l 作用:设定程序中是否需要使用获取任务信息函数OSTaskQuery。

l 说明:需要使用时配置为1,不需要使用时配置为0.

8. OS_SCHED_LOCK_EN

l 作用:设定应用程序中是否使用关调度锁函数OSSchedLock()和开调度锁函数OSSchedUnlock()。

l 说明:需要时配置为1,不需要使用时配置为0

2 通信功能的裁剪

1. 有关信号量功能的裁剪

1>OS_SEM_EN

l 作用:设定程序中是否使用信号量管理函数和其相关数据结构。

l 说明:如果要使用,则设为1;否则设为0。关闭此常量以节省内存

注:若配置为0后,所有有关信号量的函数均不能使用,即使对应的常量配置为1。

2>0S_SEM_ACCEPT_EN:

l 作用:设定程序中是否需要使用无等待获取信号量函数OSSemAccept()

l 说明:若要使用则配置为1.否则配置为0.

3>OS_SEM_DEL_EN:

l 作用:设定程序中是否需要使用删除信号量函数OSSemDel()

l 说明:若需要使用则配置为1.否则配置为0.

4>OS_SEM_QUERY_EN:

l 作用:应用系统是否需要使用查询信号量状态函数OSSemQuery()

l 说明:需要时配置为1,否则配置为0.

2关于互斥信号量服务功能的裁剪

1> OS_MUTEX_EN:

l 作用:设定程序中是否使用互斥信号量

l 说明:若需要使用,则设为1.否则设为0

注:若配置为0,则所有关互斥信号量的函数均不能使用,即使对应的常量配置为1.

2>OS_MUTEX_ACCEPT_EN

l 作用:设定程序中是否使用无等待获取互斥型信号量函数OSMutexAccept()

l 说明:若需要使用则设为1.否则设为0.

3>OS_MUTEX_DEL_EN

l 作用:设定程序中是否使用OSMutexDel()函数。

l 说明:若需要使用时则设为1,否则设为0.

4>OS_MUTEX_QUERY_EN

l 作用:设定程序中是否使用OSMutexQuery()函数。

l 说明:若需要使用则设为1.否则设为0.

3关于事件标志组服务功能的裁剪

1> OS_FLAG_EN

l 作用:设定程序中是否使用事件标志组。

l 说明:需要是设定为1.不需要时设为0.

注:若配置为0,则所有有关事件标志组的函数均不能使用。即使对应的常量配置为1。

2>OS_FLAG_ACCEPT_EN

l 作用:设定程序中是否需要使用OSFlagAccept()。

l 说明:需要时配置为1.否则配置为0.

3>OS_FLAG_DEL_EN

l 作用:设定应用程序中是否需要使用OSFlagDel()函数。

l 说明:需要使用时配置为1.否则配置为0.

4>OS_FLAG_QUERY_EN:

l 作用:设定程序中是否使用OSFlagQuery()函数

l 说明:需要时配置为1,不用是配置为0.

4.关于消息邮箱服务功能大裁剪

1>OS_MBOX_EN

l 作用:设置程序是否使用消息邮箱函数及其相关数据结构。

l 说明:如果程序中要使用消息邮箱函数就要将其设置为1.否则为0.关闭此常量以节省内存。

注:若配置次常量为0后,所有有关消息邮箱的函数均不能使用,即使对应的常量配置为1.

2>OS_MOX_ACCEPT_EN

l 作用:设定程序中是否需要使用OSMboxAccept()函数。

l 说明:需要时配置为1,不需要时配置为0

3>OS_MOX_DEL_EN

l 作用:设定程序中是否使用OSMboxDel()函数


上一页 1 2 3 下一页

关键词:

评论


相关推荐

技术专区

关闭