亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu.h

?? 在ATmega16芯片上移植的ucosii系統
?? H
字號:
/*
*********************************************************************************************************
*                                               uC/OS-II
*                                        The Real-Time Kernel
*
*                         (c) Copyright 1992-2003, Jean J. Labrosse, Weston, FL
*                                          All Rights Reserved
*
*                                       80x86/80x88 Specific code
*                                          LARGE MEMORY MODEL
*
*                                          Borland C/C++ V4.51
*
* File         : OS_CPU.H
* By           : Jean J. Labrosse
*********************************************************************************************************
*/

#ifndef OS_CPU_H
#define OS_CPU_H

#ifdef  OS_CPU_GLOBALS
#define OS_CPU_EXT
#else
#define OS_CPU_EXT  extern
#endif

/*
*********************************************************************************************************
*                                              DATA TYPES
*                                         (Compiler Specific)
*********************************************************************************************************
*/

typedef unsigned char  BOOLEAN;
typedef unsigned char  INT8U;                    /* Unsigned  8 bit quantity                           */
typedef signed   char  INT8S;                    /* Signed    8 bit quantity                           */
typedef unsigned int   INT16U;                   /* Unsigned 16 bit quantity                           */
typedef signed   int   INT16S;                   /* Signed   16 bit quantity                           */
typedef unsigned long  INT32U;                   /* Unsigned 32 bit quantity                           */
typedef signed   long  INT32S;                   /* Signed   32 bit quantity                           */
typedef float          FP32;                     /* Single precision floating point                    */
typedef double         FP64;                     /* Double precision floating point                    */

typedef unsigned int   OS_STK;                   /* Each stack entry is 16-bit wide                    */
typedef unsigned short OS_CPU_SR;                /* Define size of CPU status register (PSW = 16 bits) */

#define BYTE           INT8S                     /* Define data types for backward compatibility ...   */
#define UBYTE          INT8U                     /* ... to uC/OS V1.xx.  Not actually needed for ...   */
#define WORD           INT16S                    /* ... uC/OS-II.                                      */
#define UWORD          INT16U
#define LONG           INT32S
#define ULONG          INT32U

/* 
*********************************************************************************************************
*                              Intel 80x86 (Real-Mode, Large Model)
*
* Method #1:  Disable/Enable interrupts using simple instructions.  After critical section, interrupts
*             will be enabled even if they were disabled before entering the critical section.
*
* Method #2:  Disable/Enable interrupts by preserving the state of interrupts.  In other words, if 
*             interrupts were disabled before entering the critical section, they will be disabled when
*             leaving the critical section.
*
* Method #3:  Disable/Enable interrupts by preserving the state of interrupts.  Generally speaking you
*             would store the state of the interrupt disable flag in the local variable 'cpu_sr' and then
*             disable interrupts.  'cpu_sr' is allocated in all of uC/OS-II's functions that need to 
*             disable interrupts.  You would restore the interrupt disable state by copying back 'cpu_sr'
*             into the CPU's status register.
*********************************************************************************************************
*/
#define  OS_CRITICAL_METHOD    2

#if      OS_CRITICAL_METHOD == 1
#define  OS_ENTER_CRITICAL()  asm  ("CLI");               /* Disable interrupts                        */
#define  OS_EXIT_CRITICAL()   asm  ("STI");               /* Enable  interrupts                        */
#endif

#if      OS_CRITICAL_METHOD == 2
#define  OS_ENTER_CRITICAL()  asm  ("PUSHF"); asm("CLI"); /* Disable interrupts                        */
#define  OS_EXIT_CRITICAL()   asm  ("POPF")               /* Enable  interrupts                        */
#endif

#if      OS_CRITICAL_METHOD == 3
#define  OS_ENTER_CRITICAL()  (cpu_sr = OSCPUSaveSR())    /* Disable interrupts                        */
#define  OS_EXIT_CRITICAL()   (OSCPURestoreSR(cpu_sr))    /* Enable  interrupts                        */
#endif

/*
*********************************************************************************************************
*                           Intel 80x86 (Real-Mode, Large Model) Miscellaneous
*********************************************************************************************************
*/

#define  OS_STK_GROWTH        1                       /* Stack grows from HIGH to LOW memory on 80x86  */

#define  uCOS                 128                     /* Interrupt vector # used for context switch.   */
                                                      /* 128 decimal is 80 hexadecimal.                */
                                                      /* This should be given in decimal if you want   */
                                                      /* to use the macro in both C and in in-line     */
                                                      /* assembly (see OS_TASK_SW() below).
                                                      /* The Pacific C compiler and assembler use      */
                                                      /* different formats for hexidecimal constants   */
                                                      /* (0x80 in C but 80H in assembly). Fortunately  */
                                                      /* both use the same format for decimal numbers. */

#define  STRINGIFY(S)         #S                      /* Two levels of "stringification" are necessary */
#define  XSTRINGIFY(S)        STRINGIFY(S)            /* to get the Pacific C preprocessor to expand   */
                                                      /* OS_TASK_SW() properly.  And yes, it would     */
                                                      /* have been much simpler just to use            */
                                                      /* asm("int #128") or asm("int #80H") but I      */
                                                      /* wasn't going to let the preprocessor beat me. */

#define  OS_TASK_SW()         asm("INT   #" XSTRINGIFY(uCOS))


/*
*********************************************************************************************************
*                                            GLOBAL VARIABLES
*********************************************************************************************************
*/

OS_CPU_EXT  INT8U         OSTickDOSCtr;   /* Counter used to invoke DOS's tick handler every 'n' ticks */

/*
*********************************************************************************************************
*                                              CONSTANTS
*********************************************************************************************************
*/

extern      INT8U  const  OSTickDOSCtrReload;    /* Reload value for OSTickDOSCtr when it reaches 0    */

/*
*********************************************************************************************************
*                                              PROTOTYPES
*********************************************************************************************************
*/

void       OSTaskStkInit_FPE_x86(OS_STK **pptos, OS_STK **ppbos, INT32U *psize);

#if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
OS_CPU_SR  OSCPUSaveSR(void);
void       OSCPURestoreSR(OS_CPU_SR cpu_sr);
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道av伊人久久综合| 捆绑调教美女网站视频一区| 国产91丝袜在线播放| 精品久久久久香蕉网| 国产剧情一区二区三区| 国产女人18水真多18精品一级做| 成人精品国产一区二区4080| 国产精品欧美一区喷水| 色素色在线综合| 午夜成人在线视频| 欧美精品一区二区三区四区 | 亚洲综合激情另类小说区| 91老师国产黑色丝袜在线| 亚洲免费av在线| 69精品人人人人| 国产精品自在欧美一区| 综合色中文字幕| 欧美日韩国产天堂| 国产精品一区二区果冻传媒| 国产精品不卡视频| 欧美日产在线观看| 国产一区二区在线观看免费 | 亚洲日本在线天堂| 精品视频一区三区九区| 久久99久久久久| 亚洲同性gay激情无套| 精品视频在线视频| 国产成人精品免费网站| 一区二区三区国产精华| 欧美电影免费观看完整版| 成熟亚洲日本毛茸茸凸凹| 亚洲一区二区三区精品在线| 欧美精品一区男女天堂| 日本精品视频一区二区| 免费人成网站在线观看欧美高清| 中文欧美字幕免费| 欧美一区二区三区四区久久| 粉嫩av一区二区三区粉嫩| 亚洲成人综合在线| 国产精品亲子伦对白| 日韩一级片在线播放| 91免费国产在线观看| 国产一区美女在线| 亚洲aaa精品| 亚洲少妇屁股交4| 精品国产电影一区二区| 精品视频1区2区3区| 北条麻妃国产九九精品视频| 美女精品一区二区| 亚洲一二三级电影| 国产精品嫩草影院com| 欧美成人aa大片| 欧美久久一二区| 色婷婷久久99综合精品jk白丝 | 国产精品成人一区二区艾草| 欧美tk丨vk视频| 欧美精三区欧美精三区| 不卡一区二区中文字幕| 一区二区三区成人| 亚洲国产成人91porn| 26uuu精品一区二区在线观看| 成人免费一区二区三区视频| 国产成人精品免费在线| 综合激情成人伊人| 国产精品久线在线观看| 精品国内二区三区| 欧美精品一区在线观看| 国产亚洲婷婷免费| 欧美一级在线视频| 国产精品久久久久久久久搜平片 | 国产成人精品在线看| 精品视频一区二区三区免费| 91在线观看地址| 欧美二区乱c少妇| 99久久久无码国产精品| 日韩电影在线观看一区| 国产麻豆欧美日韩一区| 欧美性猛片xxxx免费看久爱| 久久女同性恋中文字幕| 日本一区二区动态图| 中文字幕一区免费在线观看| 91麻豆国产香蕉久久精品| 午夜av区久久| 一区二区高清在线| 亚洲精品一二三| 欧洲亚洲国产日韩| 精品国产乱子伦一区| 欧美揉bbbbb揉bbbbb| 麻豆91免费观看| 男女男精品网站| 日韩精品免费专区| 色88888久久久久久影院按摩 | 91麻豆精品国产91久久久久久久久 | 国产一区二区视频在线播放| 色综合一个色综合亚洲| 在线观看日韩精品| 国产成人午夜99999| 成人动漫视频在线| 欧美午夜不卡在线观看免费| 精品国产成人系列| 欧美一区二区在线免费观看| 欧美高清在线精品一区| 亚洲国产美女搞黄色| 日韩女优电影在线观看| 国产精品99久| 9191成人精品久久| 欧美一区二区三区爱爱| 91精品国产一区二区三区香蕉| 91美女片黄在线观看| 国产美女精品在线| 91色婷婷久久久久合中文| 欧美日韩精品一区二区在线播放| 日韩欧美高清在线| 国产精品久久久久一区二区三区共| 亚洲免费观看在线视频| 蜜臀久久久99精品久久久久久| 国产99一区视频免费| 欧美色图片你懂的| 国产亚洲一本大道中文在线| 亚洲综合免费观看高清完整版 | 国产精品人妖ts系列视频| 亚洲大片精品永久免费| 国产高清成人在线| 91福利视频网站| 精品国产百合女同互慰| 一区二区激情视频| 国产成人在线观看免费网站| 91激情五月电影| 久久久91精品国产一区二区三区| 亚洲一级二级在线| 春色校园综合激情亚洲| 欧美一级久久久久久久大片| 亚洲精品久久嫩草网站秘色| 国产在线精品一区二区三区不卡 | 北条麻妃一区二区三区| 欧美一区二区三区四区久久| 亚洲欧美综合网| 国产成人精品在线看| 日韩限制级电影在线观看| 一区二区三区视频在线看| 国产乱码字幕精品高清av| 777奇米成人网| 亚洲欧洲综合另类在线| 国产69精品久久久久毛片| 日韩一区二区高清| 亚洲成人一二三| 91免费国产视频网站| 国产精品欧美久久久久无广告| 美国精品在线观看| 欧美丝袜第三区| 中文字幕在线不卡国产视频| 国产成人av自拍| 2017欧美狠狠色| 麻豆传媒一区二区三区| 9191精品国产综合久久久久久| 亚洲国产精品欧美一二99| 91在线观看美女| 亚洲欧美一区二区三区孕妇| av电影一区二区| 国产精品毛片大码女人| 国产不卡视频在线观看| 久久噜噜亚洲综合| 经典一区二区三区| 日韩欧美在线网站| 免费xxxx性欧美18vr| 欧美喷水一区二区| 午夜亚洲国产au精品一区二区| 欧美亚洲国产一区二区三区va| 亚洲视频在线观看三级| 色婷婷久久一区二区三区麻豆| 亚洲欧美日韩中文播放| 97久久精品人人做人人爽| 亚洲日本在线看| 91麻豆自制传媒国产之光| 亚洲女子a中天字幕| 欧美在线色视频| 午夜电影网一区| 精品国产自在久精品国产| 国产麻豆精品theporn| 久久精品日韩一区二区三区| 成人免费黄色大片| 亚洲六月丁香色婷婷综合久久| 在线观看成人免费视频| 丝袜诱惑制服诱惑色一区在线观看 | 欧美国产精品久久| 不卡的av在线| 亚洲一二三四区不卡| 91精品久久久久久久久99蜜臂| 秋霞午夜av一区二区三区| 精品国产91九色蝌蚪| 国产精品综合二区| 亚洲图片你懂的| 在线不卡a资源高清| 国产综合久久久久久鬼色 | 欧美videos大乳护士334| 国产一区二区三区在线观看精品| 国产三级三级三级精品8ⅰ区| 91麻豆高清视频| 性欧美大战久久久久久久久| 日韩免费观看2025年上映的电影|