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

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

?? os_core.s

?? ucos如何移植到單片機mega128
?? S
?? 第 1 頁 / 共 5 頁
字號:
	.module OS_CORE.C
	.area lit(rom, con, rel)
_OSMapTbl::
	.byte 1,2
	.byte 4,8
	.byte 16,32
	.byte 64,128
	.dbfile E:\study\ucos_ii\ucos2_iccavr\iccavr\ucos2_without_cpu\OS_CORE.C
	.dbsym e OSMapTbl _OSMapTbl A[8:8]kc
_OSUnMapTbl::
	.byte 0,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 5,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 6,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 5,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 7,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 5,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 6,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 5,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 4,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.byte 3,0
	.byte 1,0
	.byte 2,0
	.byte 1,0
	.dbsym e OSUnMapTbl _OSUnMapTbl A[256:256]kc
	.area text(rom, con, rel)
	.dbfile E:\study\ucos_ii\ucos2_iccavr\iccavr\ucos2_without_cpu\OS_CORE.C
	.dbfunc e OSInit _OSInit fV
	.even
_OSInit::
	.dbline -1
	.dbline 86
; /*
; *********************************************************************************************************
; *                                                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 "..\ucos2_application\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
; *********************************************************************************************************
; */
; 
; 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);
; 
; 
; /*
; *********************************************************************************************************
; *                                             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)
; {
	.dbline 88
; #if OS_VERSION >= 204
;     OSInitHookBegin();                                           /* Call port specific initialization code   */
	xcall _OSInitHookBegin
	.dbline 91
; #endif
; 
;     OS_InitMisc();                                               /* Initialize miscellaneous(雜項) variables       */
	xcall _OS_InitMisc
	.dbline 93
; 
;     OS_InitRdyList();                                            /* Initialize the Ready List                */
	xcall _OS_InitRdyList
	.dbline 94
;     OS_InitTCBList();                                            /* Initialize the free list of OS_TCBs      */
	xcall _OS_InitTCBList
	.dbline 95
;     OS_InitEventList();                                          /* Initialize the free list of OS_EVENTs    */
	xcall _OS_InitEventList
	.dbline 98
; 
; #if (OS_VERSION >= 251) && (OS_FLAG_EN > 0) && (OS_MAX_FLAGS > 0)
;     OS_FlagInit();                                               /* Initialize the event flag structures     */
	xcall _OS_FlagInit
	.dbline 109
; #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                     */
	xcall _OS_InitTaskIdle
	.dbline 115
; #if OS_TASK_STAT_EN > 0
;     OS_InitTaskStat();                                           /* Create the Statistic Task                */
; #endif
; 
; #if OS_VERSION >= 204
;     OSInitHookEnd();                                             /* Call port specific init. code            */
	xcall _OSInitHookEnd
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OSIntEnter _OSIntEnter fV
	.even
_OSIntEnter::
	.dbline -1
	.dbline 145
; #endif
; }
; 
; /*
; *********************************************************************************************************
; *                                              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)
; {
	.dbline 146
;     if (OSRunning == TRUE) {
	lds R24,_OSRunning
	cpi R24,1
	brne L5
	.dbline 146
	.dbline 147
;         if (OSIntNesting < 255) {
	lds R24,_OSIntNesting
	cpi R24,255
	brsh L7
	.dbline 147
	.dbline 148
;             OSIntNesting++;                      /* Increment ISR nesting level                        */
	subi R24,255    ; addi 1
	sts _OSIntNesting,R24
	.dbline 149
;         }
L7:
	.dbline 150
L5:
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OSIntExit _OSIntExit fV
	.even
_OSIntExit::
	xcall push_gset2
	.dbline -1
	.dbline 173
;     }
; }
; 
; /*
; *********************************************************************************************************
; *                                               EXIT ISR
; *
; * Description: This function is used to notify uC/OS-II that you have completed serviving an ISR.  When
; *              the last nested ISR has completed, uC/OS-II will call the scheduler to determine whether
; *              a new, high-priority task, is ready to run.
; *
; * Arguments  : none
; *
; * Returns    : none
; *
; * Notes      : 1) 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.
; *              2) Rescheduling is prevented when the scheduler is locked (see OS_SchedLock())
; *********************************************************************************************************
; */
; 
; void  OSIntExit (void)
; {
	.dbline 179
; #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
;     OS_CPU_SR  cpu_sr;
; #endif
;     
;     
;     if (OSRunning == TRUE) {
	lds R24,_OSRunning
	cpi R24,1
	breq X0
	xjmp L10
X0:
	.dbline 179
	.dbline 180
;         OS_ENTER_CRITICAL();
	st -y,r16
	in r16,0x3F
	cli
	push r16
	ld r16,y+
	.dbline 180
	.dbline 181
;         if (OSIntNesting > 0) {                            /* Prevent OSIntNesting from wrapping       */
	clr R2
	lds R3,_OSIntNesting
	cp R2,R3
	brsh L12
	.dbline 181
	.dbline 182
;             OSIntNesting--;
	mov R24,R3
	subi R24,1
	sts _OSIntNesting,R24
	.dbline 183
;         }
L12:
	.dbline 184
;         if ((OSIntNesting == 0) && (OSLockNesting == 0)) { /* Reschedule only if all ISRs complete ... */
	lds R2,_OSIntNesting
	tst R2
	breq X1
	xjmp L14
X1:
	lds R2,_OSLockNesting
	tst R2
	breq X2
	xjmp L14
X2:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品黄色片免费大全| 精品久久久久久久人人人人传媒 | 国产精品亚洲一区二区三区妖精| 菠萝蜜视频在线观看一区| 51久久夜色精品国产麻豆| 国产精品天干天干在观线| 日韩二区三区四区| 久久综合国产精品| 亚洲午夜电影在线| 不卡高清视频专区| 久久精品水蜜桃av综合天堂| 国产精品久久久久久久蜜臀| 亚洲综合精品久久| 成人一区二区三区在线观看| 日韩欧美中文字幕制服| 亚洲一区二区三区自拍| 成人午夜av影视| 亚洲精品一区二区三区香蕉 | 国产女主播在线一区二区| 老司机午夜精品| 337p亚洲精品色噜噜| 一区二区三区在线高清| 99精品欧美一区二区三区小说 | 欧美精品一区二区三区蜜桃| 午夜电影一区二区| 欧美网站大全在线观看| 亚洲男同1069视频| av不卡在线播放| 中国色在线观看另类| 国产电影一区在线| 久久精品欧美日韩| 国产成人综合在线| 国产日产欧美一区二区三区| 国产馆精品极品| 国产网红主播福利一区二区| 国产最新精品免费| 国产午夜精品理论片a级大结局| 国产呦精品一区二区三区网站| 精品欧美乱码久久久久久1区2区| 久久国产夜色精品鲁鲁99| 精品美女在线播放| 国产福利一区在线| 国产精品电影一区二区| 一本一本久久a久久精品综合麻豆| 亚洲人午夜精品天堂一二香蕉| 91无套直看片红桃| 亚洲一区二区在线免费看| 欧美色图天堂网| 日韩综合小视频| 欧美成人官网二区| 国产成人啪免费观看软件| 国产精品免费久久久久| 在线免费精品视频| 午夜精彩视频在线观看不卡| 欧美精品一区二区久久婷婷| 成熟亚洲日本毛茸茸凸凹| 日韩美女视频一区二区 | 日韩欧美一二三四区| 国产精品一区专区| 亚洲日本在线观看| 欧美美女网站色| 国产91精品欧美| 夜夜嗨av一区二区三区网页| 日韩亚洲电影在线| 暴力调教一区二区三区| 午夜免费久久看| 国产欧美精品区一区二区三区| 色婷婷国产精品| 韩日精品视频一区| 樱桃视频在线观看一区| 精品国产电影一区二区| www.色综合.com| 蓝色福利精品导航| 国产精品第一页第二页第三页 | 欧美伊人久久大香线蕉综合69| 丝袜美腿亚洲综合| 国产精品人人做人人爽人人添| 欧美精品一卡两卡| 成人污视频在线观看| 五月天激情综合| 亚洲欧美影音先锋| 欧美变态口味重另类| 在线亚洲高清视频| 成人激情免费电影网址| 日韩va亚洲va欧美va久久| 中国av一区二区三区| 欧美一区二区人人喊爽| 91视频com| 国产精品系列在线观看| 日韩国产欧美一区二区三区| 亚洲情趣在线观看| 久久久精品黄色| 欧美大片一区二区三区| 欧美日韩激情在线| 92精品国产成人观看免费| 韩国女主播一区| 免费在线观看一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美二区三区91| 一本大道久久精品懂色aⅴ| 国产在线视频精品一区| 麻豆成人久久精品二区三区红| 一区二区三区四区在线免费观看 | 成人av免费在线| 国产一区二区在线观看免费| 天天色图综合网| 亚洲欧美aⅴ...| 亚洲视频一区二区在线观看| 国产精品另类一区| 国产精品久久久久影院| 欧美国产禁国产网站cc| 国产女同互慰高潮91漫画| 久久日韩粉嫩一区二区三区| 久久久亚洲高清| 久久精品视频在线免费观看| 久久综合狠狠综合久久综合88| 久久色.com| 国产欧美日韩综合| 国产精品久久久久一区二区三区共| 欧美国产1区2区| 国产精品全国免费观看高清| 国产精品久久久久精k8| 中文字幕亚洲成人| 亚洲精品videosex极品| 亚洲制服欧美中文字幕中文字幕| 一区二区免费看| 丝袜诱惑亚洲看片| 蜜桃免费网站一区二区三区| 精品亚洲成a人| 国产激情精品久久久第一区二区| 国产成+人+日韩+欧美+亚洲| caoporen国产精品视频| 日本乱人伦aⅴ精品| 欧美午夜一区二区| 日韩视频一区二区在线观看| 欧美精品一区二区三区蜜臀| 国产精品国产a| 亚洲国产成人高清精品| 亚洲无线码一区二区三区| 麻豆精品一区二区| 成人h精品动漫一区二区三区| 一本色道亚洲精品aⅴ| 911国产精品| 国产日韩一级二级三级| 综合久久久久久| 热久久国产精品| 国产成+人+日韩+欧美+亚洲| 欧美中文字幕亚洲一区二区va在线| 欧美一级xxx| 国产精品毛片高清在线完整版 | 国产精品乱码一区二三区小蝌蚪| 亚洲裸体xxx| 琪琪一区二区三区| 99久久精品国产一区二区三区| 欧美另类z0zxhd电影| 日本一区二区三区在线不卡| 一区二区三区四区在线播放| 黄一区二区三区| 欧美日韩在线播放三区四区| 欧美精品一区二区三区蜜桃视频| 一区二区三区日韩在线观看| 另类小说图片综合网| 色妹子一区二区| 久久噜噜亚洲综合| 偷拍日韩校园综合在线| 成人成人成人在线视频| 欧美成人性战久久| 亚洲综合色视频| 大陆成人av片| 久久这里只有精品6| 亚洲一区二区三区精品在线| 国产成人av电影| 欧美一区二区三区在线视频| 亚洲欧美日本韩国| 国产精品88av| 日韩欧美美女一区二区三区| 亚洲一区中文在线| 成人国产视频在线观看| 337p日本欧洲亚洲大胆色噜噜| 亚洲伊人色欲综合网| 91视频91自| 中文字幕亚洲区| 成人免费观看av| 久久伊99综合婷婷久久伊| 视频在线观看一区二区三区| 欧美性一区二区| 亚洲综合在线免费观看| 成人18视频在线播放| 久久久久成人黄色影片| 国产资源在线一区| 日韩欧美中文一区| 日本美女视频一区二区| 欧美日韩国产成人在线91| 亚洲香蕉伊在人在线观| 色播五月激情综合网| 亚洲天堂成人在线观看| av电影在线观看完整版一区二区| 国产欧美一区二区精品性色| 国产成人综合在线播放| 日本一区二区成人在线|