/*
*********************************************************************************************************
* 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
#define OS_GLOBALS
#include "includes.h"
#endif
//char s='T';
//void OSTimeTickHook1(void);
/*
*********************************************************************************************************
* 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
*********************************************************************************************************
*/
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)
*********************************************************************************************************
*/
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 */
};
/*
*********************************************************************************************************
* 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
*********************************************************************************************************
*/
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 */
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.
*
* Arguments : none
*
* Returns : none
*
* Notes : 1) This function should be called ith interrupts already disabled
* 2) Your ISR can directly increment OSIntNesting without calling this function because
* OSIntNesting has been declared 'global'.
* 3) You MUST still call OSIntExit() even though you increment OSIntNesting directly.
* 4) You MUST invoke OSIntEnter() and OSIntExit() in pair. In other words, for every call
* to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the
* end of the ISR.
* 5) You are allowed to nest interrupts up to 255 levels deep.
* 6) I removed the OS_ENTER_CRITICAL() and OS_EXIT_CRITICAL() around the increment because
* OSIntEnter() is always called with interrupts disabled.
*********************************************************************************************************
*/
void OSIntEnter (void)
{
if (OSRunning == TRUE) {
if (OSIntNesting < 255) {
OSIntNesting++; /* Increment ISR nesting level */
}
}
}
/*$PAGE*/
/*
*********************************************************************************************************
* EXIT ISR
*
* Description: This function is used to notify uC/OS-II that you have completed serviving an ISR. When
* the last ne
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
任哲《μC/OS-II原理及应用》配套资料(BC3.1+例题源码) (862个子文件)
RULES.ASI 19KB
C0.ASM 26KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
OS_CPU_A.ASM 14KB
C0D.ASM 14KB
C0W.ASM 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
TEST.BAK 13KB
BUILD-C0.BAT 2KB
MAKETEST.BAT 844B
MAKETEST.BAT 844B
MAKETEST.BAT 844B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
MAKETEST.BAT 842B
OS_CORE.C 49KB
OS_FLAG.C 43KB
OS_TASK.C 35KB
OS_Q.C 34KB
OS_MUTEX.C 27KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
PC.C 25KB
共 862 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
- zhengjiaweiaa2012-11-06货真价实!很全的配套资料
- TRIGUO2014-08-14实际测试了一下,非常好用.
- llianjiang2017-12-06看看 第一次下载名字变了 再次下载
- laoheitang2017-12-11非常全好用,有这个资料方便许多
SenpleChan
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 功率拓扑快速参考指南-ti,TI官方出品
- 开关电源拓朴图表,各种电路拓扑表格
- 登录和注册 前端:vue3+iview plus +axios 后台:spring boot +mybatis
- 软件测试入门简介:从基础到实践的全面介绍
- 2024CDA Level Ⅰ 认证考试大纲
- YOLO 数据集:淋巴病灶检测(1类别,包含训练集、验证集)
- 基于AT91RM9200处理器+XC3S250E(FPGA)+AD5322采集板Cadence ORCAD(硬件原理图+PCB)
- java+vue2实现zebra打印机,js实现
- J-link烧录软件,用于hex文件烧录
- VB打开时间同步页面/Internet时间设置.vbs
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功