ucosii操作系统源码

  • w0_458141
    了解作者
  • 123.6KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-06 07:37
    上传日期
ucosii操作系统源码ucosii操作系统源码ucosii操作系统源码
ucosiil.rar
内容介绍
/* ********************************************************************************************************* * uC/OS-II * The Real-Time Kernel * CORE FUNCTIONS * * (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL * All Rights Reserved * * File : OS_CORE.C * By : Jean J. Labrosse ********************************************************************************************************* */ #ifndef OS_MASTER_FILE//防止一些文件加入到includes.h当中 #define OS_GLOBALS #include "includes.h" #endif /* ********************************************************************************************************* * MAPPING TABLE TO MAP BIT POSITION TO BIT MASK * * Note: Index into table is desired bit position, 0..7 * Indexed value corresponds to bit mask ********************************************************************************************************* */ /* ********************************************************************************************************* 映射位位置映射到位掩码的映射表 备注:表的索引是想得到的位的位置(0到7) 索引得到的值是位的掩码 ********************************************************************************************************* */ INT8U const OSMapTbl[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; /* ********************************************************************************************************* * PRIORITY RESOLUTION TABLE * * Note: Index into table is bit pattern to resolve highest priority * Indexed value corresponds to highest priority bit position (i.e. 0..7) ********************************************************************************************************* */ /* ********************************************************************************************** 优先级分辨表 备注:索引表是最高优先级的位模式 索引值对应于最高优先级的位位置(0到7) *********************************************************************************************** */ INT8U const OSUnMapTbl[] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x00 to 0x0F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x10 to 0x1F */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x20 to 0x2F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x30 to 0x3F */ 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x40 to 0x4F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x50 to 0x5F */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x60 to 0x6F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x70 to 0x7F */ 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x80 to 0x8F */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0x90 to 0x9F */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xA0 to 0xAF */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xB0 to 0xBF */ 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xC0 to 0xCF */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xD0 to 0xDF */ 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, /* 0xE0 to 0xEF */ 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0 /* 0xF0 to 0xFF */ };//256个东东,干嘛呢? /* ********************************************************************************************************* * FUNCTION PROTOTYPES ********************************************************************************************************* */ //以下为初始化函数 static void OS_InitEventList(void);//初始化事件控制块的空表 static void OS_InitMisc(void);//初始化其它约定的值 static void OS_InitRdyList(void);//初始化就绪列表 static void OS_InitTaskIdle(void);//建立空闲任务 static void OS_InitTaskStat(void);//建立一个统计任务 static void OS_InitTCBList(void);//初始化任务控制块的空闲表 /*$PAGE*/ /* ********************************************************************************************************* * INITIALIZATION * * Description: This function is used to initialize the internals of uC/OS-II and MUST be called prior to * creating any uC/OS-II object and, prior to calling OSStart(). * * Arguments : none * * Returns : none ********************************************************************************************************* */ /* ********************************************************************************************************* 初始化 功能:要先在调用 OSStart()后,再初始化uxosII内核,要先建立ucos任何一个任务 ********************************************************************************************************* */ void OSInit (void) { #if OS_VERSION >= 204 OSInitHookBegin(); /* Call port specific initialization code */ //调用特定通信口初始化代码 #endif OS_InitMisc(); /* Initialize miscellaneous variables */ //初始化多种变量 OS_InitRdyList(); /* Initialize the Ready List */ //初始化就绪链表 OS_InitTCBList(); /* Initialize the free list of OS_TCBs */ //初始化TCB空闲链表 OS_InitEventList(); /* Initialize the free list of OS_EVENTs */ //初始化事件空闲链表 #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0) OS_FlagInit(); /* Initialize the event flag structures */ //初始化事件标志结构 #endif #if (OS_MEM_EN > 0) && (OS_MAX_MEM_PART > 0) OS_MemInit(); /* Initialize the memory manager */ //初始化存在管理 #endif #if (OS_Q_EN > 0) && (OS_MAX_QS > 0) OS_QInit(); /* Initialize the message queue structures */ //初始化消息队列结构 #endif OS_InitTaskIdle(); /* Create the Idle Task */ //建立空闲任务 #if OS_TASK_STAT_EN > 0 OS_InitTaskStat(); /* Create the Statistic Task */ //建立统计任务 #endif #if OS_VERSION >= 204 OSInitHookEnd(); /* Call port specific init. code */ //调用专用通信口初始化代码 #endif } /*$PAGE*/ /* ********************************************************************************************************* * ENTER ISR * * Description: This function is used to notify uC/OS-II that you are about to service an interrupt * service routine (ISR). This allows uC/OS-II to keep track of interrupt nesting and thus * only perform rescheduling at the last nested ISR. * * Argumen
评论