分析用的源码:
https://download.youkuaiyun.com/download/wowocpp/10890676
需要结合这些书籍
共同查看:
< 嵌入式实时操作系统μC OS原理与实践 [卢有亮编著].pdf>
<ARM Cortex-M0权威指南(中文) 高清扫描版.pdf>
OSInit 函数

OS_ENTER_CRITICAL

typedef unsigned int OS_CPU_SR; /* Define size of CPU status register (PSR = 32 bits) /
#if OS_CRITICAL_METHOD == 3 / Allocate storage for CPU status register */
OS_CPU_SR cpu_sr = 0;
#endif

异常屏蔽寄存器(PRIMASK)
Page153 :<ARM Cortex-M0权威指南(中文) 高清扫描版.pdf>


信号量的初始化

OSInit
OS_InitEventList
OS_CPU_ExceptStk 数组的作用 ?
typedef unsigned int OS_STK; /* Each stack entry is 32-bit wide
OS_CPU_EXT OS_STK OS_CPU_ExceptStk[OS_CPU_EXCEPT_STK_SIZE];
ctx :Context Switching 上下文切换。
TCB (Task Control Block )
Task Control Block
OSEventFreeList 是啥 ?
OSSemCreate 解析
TBL — table
OSEventFreeList ---- 事件空闲链表指针
调用关系
OSInit() 调用OS_InitEventList();
OS_InitEventList()中:
OSEventFreeList = &OSEventTbl[0];
#define OS_MAX_EVENTS 10 /* Max. number of event control blocks in your application /
OS_EXT OS_EVENT OSEventTbl[OS_MAX_EVENTS];/ Table of EVENT control blocks */
semaphore 信号量分析

OS_InitEventList 中:


下面的是全局变量:

(稍后补充)
本文深入探讨了嵌入式实时操作系统μCOS的原理与实践,结合ARMCortex-M0权威指南,详细分析了OSInit函数、信号量初始化、异常屏蔽寄存器等核心概念,并解析了OSEventFreeList的使用与OSEventTbl数组的定义。
436

被折叠的 条评论
为什么被折叠?



