uC/OS从0开始自学

uC/OS从0开始学

OS初始化
OSInit(p_err)

字面理解:
OSInitHook() -------------------中断的栈空间清零,得到中断栈空间最大地址;
OSIntNestingCtr ---------------中断嵌套清零;
OSRunning ----------------------多任务指示
OSSchedLockNestingCtr ----锁定嵌套
OSTCBCurPtr -------------------当前TCB指针
OSTCBHighRdyPtr
OSPrioCur -----------------------当前优先级
OSPrioHighRdy
OSPrioSaved

OS_CFG_SCHED_LOCK_TIME_MEAS_EN--------锁定时间测量

OS_CFG_SCHED_ROUND_ROBIN_EN-------------循环调度
OSSchedRoundRobinEn
OSSchedRoundRobinDfltTimeQuanta------------------默认一次10个时间片

if (OSCfg_ISRStkSize > (CPU_STK_SIZE)0) {-------感觉和OSInitHook()功能一样

OS_CFG_APP_HOOKS_EN------------------------------清除hook函数指针

OS_CFG_TASK_REG_TBL_SIZE-----------------------任务寄存器

OS_PrioInit(); -------------------------------------------------清空优先级,一个数组赋值0

OS_RdyListInit();---------------------------------------------初始化就绪列表

OS_CFG_FLAG_EN ----------------------------------------event标志模块

OS_CFG_MEM_EN -----------------------------------------内存管理模块

OS_MSG_EN-------------------------------------------------

OS_CFG_MUTEX_EN -------------------------------------互斥管理模块

OS_CFG_Q_EN ---------------------------------------------消息队列管理模块

OS_TaskInit() -------------------------------------------------初始化任务管理

OS_CFG_ISR_POST_DEFERRED_EN --------------

OS_IdleTaskInit ----------------------------------------------创建一个idle任务

OS_TickTaskInit ---------------------------------------------创建一个tick任务

OS_CFG_STAT_TASK_EN ------------------------------统计任务
OS_StatTaskInit() ------------------------------------------创建一个统计任务

OS_CFG_TMR_EN ----------------------------------------定时器任务
OS_TmrInit() ------------------------------------------------创建一个定时器任务

OS_CFG_DBG_EN ---------------------------------------debug模式
OS_Dbg_Init() ----------------------------------------------防止编译器优化某些未使用变量

OSCfg_Init() ------------------------------------------------函数注释和上面的函数一样

未完待续……

创建一个 OSTask
OSTaskCreate
(
p_tcb-------------任务控制块的指针,里面有任务各种参数信息
p_name---------任务的的字符串名
p_task-----------任务代码的指针
p_arg------------第一次进入函数时带入的参数
prio---------------优先级,越小优先级越高
p_stk_base-----任务栈的最低位地址
stk_limit---------栈满限位
stk_size---------栈大小,单位(CPU_STK)
q_size-----------最大给任务发送的信息数量
time_quanta—时间片的大小
p_ext------------TCB拓展内存
opt---------------可选项,无、栈检查、栈清除、浮点寄存器、TLS
p_err------------存错误码的位置
)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值