首页 > 其他分享 >UCOS-III 系统配置

UCOS-III 系统配置

时间:2024-07-02 18:28:25浏览次数:23  
标签:EN UCOS 启用 CFG TASK 禁用 III OS 系统配置

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的自然字大小进行调整。

标签:EN,UCOS,启用,CFG,TASK,禁用,III,OS,系统配置
From: https://blog.csdn.net/sensorfeng/article/details/140110284

相关文章

  • 修复《Call of Duty: Black Ops III(使命召唤3)》DLL损坏问题:确保游戏体验顺畅的详尽方
    《CallofDuty:BlackOpsIII》(使命召唤:黑色行动3)是一款由Treyarch开发、动视发行的未来战争题材第一人称射击游戏,设定在2065年的近未来,玩家扮演高科技装备的超级士兵,参与紧张激烈的单人战役与多人对战,还包括标志性的丧尸模式。如果你遇到《CallofDuty:BlackOpsIII》......
  • 基于ucosii的车载电控单元
    一、项目简介   通过利用STM32F103C8、直流电机、按键、us015超声波测距模块、MPU6050、蜂鸣器、TFLCD、霍尔传感器等硬件设计一个车载电控单元,实现了手动加档、实时显示车速、超声波避障预警、车身倾斜预警以及更新固件功能,以保证行车安全。二、项目框架   三、......
  • 代码随想录算法训练营第46天 | 121. 买卖股票的最佳时机 、122.买卖股票的最佳时机II
    股票问题是一个动态规划的系列问题,前两题并不难,第三题有难度。买卖股票的最佳时机视频讲解:https://www.bilibili.com/video/BV1Xe4y1u77qhttps://programmercarl.com/0121.买卖股票的最佳时机.html/***@param{number[]}prices*@return{number}*/varmaxProfit=......
  • 代码随想录算法训练营第45天 | 198.打家劫舍 、213.打家劫舍II 、337.打家劫舍III
    今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。198.打家劫舍视频讲解:https://www.bilibili.com/video/BV1Te411N7SXhttps://programmercarl.com/0198.打家劫舍.html/***@param{number[]}nums*@return{number}*/varrob=function(nums){const......
  • OCP4.2.2 主机标准化检查系统配置项修复clocksource 报错
    适应版本:社区版本OCP:4.2.2-20240315150922背景描述OCP纳管主机后进行主机标准化时,setclocksource一直没有成功   自动修复后还是有问题 分析过程查看官方ocp.4.2文档,有相关信息 执行相关命令再次查看文件并未写入tsc 重新检查 自动修复,......
  • windows系统配置linux环境wsl
    前言WindowsSubsystemforLinux(WSL)是微软为Windows10和WindowsServer引入的一个特性,它允许用户在Windows操作系统上直接运行Linux环境,而不需要使用虚拟机或双启动系统。WSL的主要目的是提高开发者的生产力,特别是那些需要在Linux和Windows之间切换的开发人员。一、wsl......
  • Day24| 77. 组合 、216.组合总和III 、17.电话号码的字母组合
    77.组合对着在回溯算法理论基础给出的代码模板,来做本题组合问题,大家就会发现写回溯算法套路。在回溯算法解决实际问题的过程中,大家会有各种疑问,先看视频介绍,基本可以解决大家的疑惑。本题关于剪枝操作是大家要理解的重点,因为后面很多回溯算法解决的题目,都是这个剪枝套路......
  • Modbus协议转Profinet协议网关与气体监测系统配置案例
    一、背景;Modbus协议和Profinet协议作为工业领域常见的两种通讯协议,各自具有一定的特点和应用范围。Modbus转Profinet网关(XD-MDPN100/300)在工业自动化控制系统中,可以将Modbus协议转换为Profinet协议,以实现不同设备之间的数据交换和通讯二、前景;许多现有的工业设备采用Modbus协议进......
  • 代码随想录算法训练营第五十一天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机I
    121.买卖股票的最佳时机一只股票只能买卖一次代码随想录.-力扣(LeetCode)输入:[7,1,5,3,6,4]输出:5解释:在第2天(股票价格=1)的时候买入,在第5天(股票价格=6)的时候卖出,最大利润=6-1=5。注意利润不能是7-1=6,因为卖出价格需要大于买入价格;同时,你不能在买入......
  • 代码随想录算法训练营第五十天| 198.打家劫舍、213.打家劫舍II、337.打家劫舍 III
    198.打家劫舍文档讲解:代码随想录题目链接:.-力扣(LeetCode) 问题:计算你不触动警报装置的情况下,一夜之内能够偷窃到的最高金额。也就是说相邻的房间不能偷当前房屋偷与不偷取决于前一个房屋和前两个房屋是否被偷了。所以这里就更感觉到,当前状态和前面状态会有一种依赖......