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

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

?? os_cpu_c.src

?? 利用ucos-ii編寫的XC167的源程序編譯環境為keil c1
?? SRC
?? 第 1 頁 / 共 2 頁
字號:
	MOV	[-R0],R8
	?SYMB	'',$,96,18
	MOV	R8,#SEG _3
	MOV	[-R0],R8
	?SYMB	'',$,96,20
	JMPS	SEG _OSTaskBuildStk,_OSTaskBuildStk
	?SYMB	'',$,96,16
_3:
	?SYMB	'',$,102,7
	?SYMB	'',$,102,2
	MOV	R15,[R0+]
	?SYMB	'',$,96,14
	MOV	R14,R7
	?SYMB	'R14R15',$,100,5
; os_cpu_c.c   81	    return ((OS_STK *)stk);
	?LINE	81
	MOV	R4,R14
	MOV	R5,R15
; os_cpu_c.c   82	}
	?LINE	82
	ADD	R0,#06h
	?SYMB	'',$,96,8
	MOV	R6,[R0+]
	?SYMB	'',$,96,6
	MOV	R7,[R0+]
	?SYMB	'',$,96,4
	MOV	R8,[R0+]
	?SYMB	'',$,96,2
	MOV	R9,[R0+]
	?SYMB	'',$,96,0
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
	?SYMB	'',$,102,5
_OSTaskStkInit	ENDP
	?SYMB	'',$,17,82
; os_cpu_c.c   83	
; os_cpu_c.c   84	/*$PAGE*/
; os_cpu_c.c   85	
; os_cpu_c.c   86	/*$PAGE*/
; os_cpu_c.c   87	#if OS_CPU_HOOKS_EN
; os_cpu_c.c   88	/*
; os_cpu_c.c   89	*********************************************************************************************************
; os_cpu_c.c   90	*                                          TASK CREATION HOOK
; os_cpu_c.c   91	*
; os_cpu_c.c   92	* Description: This function is called when a task is created.
; os_cpu_c.c   93	*
; os_cpu_c.c   94	* Arguments  : ptcb   is a pointer to the task control block of the task being created.
; os_cpu_c.c   95	*
; os_cpu_c.c   96	* Note(s)    : 1) Interrupts are disabled during this call.
; os_cpu_c.c   97	*********************************************************************************************************
; os_cpu_c.c   98	*/
; os_cpu_c.c   99	void OSTaskCreateHook (OS_TCB *ptcb)
; os_cpu_c.c  100	{
	?LINE	100
	PUBLIC	_OSTaskCreateHook
	?SYMB	'OSTaskCreateHook',_OSTaskCreateHook,37,1
	?SYMB	'',100,8,34
_OSTaskCreateHook	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
	?SYMB	'',01a0121H,38,304
; os_cpu_c.c  101	    ptcb = ptcb;                       /* Prevent compiler warning                                     */
; os_cpu_c.c  102	}
	?LINE	102
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTaskCreateHook	ENDP
	?SYMB	'',$,17,102
; os_cpu_c.c  103	
; os_cpu_c.c  104	
; os_cpu_c.c  105	/*
; os_cpu_c.c  106	*********************************************************************************************************
; os_cpu_c.c  107	*                                           TASK DELETION HOOK
; os_cpu_c.c  108	*
; os_cpu_c.c  109	* Description: This function is called when a task is deleted.
; os_cpu_c.c  110	*
; os_cpu_c.c  111	* Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
; os_cpu_c.c  112	*
; os_cpu_c.c  113	* Note(s)    : 1) Interrupts are disabled during this call.
; os_cpu_c.c  114	*********************************************************************************************************
; os_cpu_c.c  115	*/
; os_cpu_c.c  116	void OSTaskDelHook (OS_TCB *ptcb)
; os_cpu_c.c  117	{
	?LINE	117
	PUBLIC	_OSTaskDelHook
	?SYMB	'OSTaskDelHook',_OSTaskDelHook,37,1
	?SYMB	'',117,8,34
_OSTaskDelHook	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
; os_cpu_c.c  118	    ptcb = ptcb;                       /* Prevent compiler warning                                     */
; os_cpu_c.c  119	}
	?LINE	119
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTaskDelHook	ENDP
	?SYMB	'',$,17,119
; os_cpu_c.c  120	
; os_cpu_c.c  121	/*
; os_cpu_c.c  122	*********************************************************************************************************
; os_cpu_c.c  123	*                                           TASK SWITCH HOOK
; os_cpu_c.c  124	*
; os_cpu_c.c  125	* Description: This function is called when a task switch is performed.  This allows you to perform other
; os_cpu_c.c  126	*              operations during a context switch.
; os_cpu_c.c  127	*
; os_cpu_c.c  128	* Arguments  : none
; os_cpu_c.c  129	*
; os_cpu_c.c  130	* Note(s)    : 1) Interrupts are disabled during this call.
; os_cpu_c.c  131	*              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
; os_cpu_c.c  132	*                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
; os_cpu_c.c  133	*                 task being switched out (i.e. the preempted task).
; os_cpu_c.c  134	*********************************************************************************************************
; os_cpu_c.c  135	*/
; os_cpu_c.c  136	void OSTaskSwHook (void)
; os_cpu_c.c  137	{
	?LINE	137
	PUBLIC	_OSTaskSwHook
	?SYMB	'OSTaskSwHook',_OSTaskSwHook,37,1
	?SYMB	'',137,8,34
_OSTaskSwHook	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
; os_cpu_c.c  138	}
	?LINE	138
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTaskSwHook	ENDP
	?SYMB	'',$,17,138
; os_cpu_c.c  139	
; os_cpu_c.c  140	/*
; os_cpu_c.c  141	*********************************************************************************************************
; os_cpu_c.c  142	*                                           STATISTIC TASK HOOK
; os_cpu_c.c  143	*
; os_cpu_c.c  144	* Description: This function is called every second by uC/OS-II's statistics task.  This allows your
; os_cpu_c.c  145	*              application to add functionality to the statistics task.
; os_cpu_c.c  146	*
; os_cpu_c.c  147	* Arguments  : none
; os_cpu_c.c  148	*********************************************************************************************************
; os_cpu_c.c  149	*/
; os_cpu_c.c  150	void OSTaskStatHook (void)
; os_cpu_c.c  151	{
	?LINE	151
	PUBLIC	_OSTaskStatHook
	?SYMB	'OSTaskStatHook',_OSTaskStatHook,37,1
	?SYMB	'',151,8,34
_OSTaskStatHook	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
; os_cpu_c.c  152	}
	?LINE	152
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTaskStatHook	ENDP
	?SYMB	'',$,17,152
; os_cpu_c.c  153	
; os_cpu_c.c  154	/*
; os_cpu_c.c  155	*********************************************************************************************************
; os_cpu_c.c  156	*                                               TICK HOOK
; os_cpu_c.c  157	*
; os_cpu_c.c  158	* Description: This function is called every tick.
; os_cpu_c.c  159	*
; os_cpu_c.c  160	* Arguments  : none
; os_cpu_c.c  161	*
; os_cpu_c.c  162	* Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
; os_cpu_c.c  163	*********************************************************************************************************
; os_cpu_c.c  164	*/
; os_cpu_c.c  165	void OSTimeTickHook (void)
; os_cpu_c.c  166	{
	?LINE	166
	PUBLIC	_OSTimeTickHook
	?SYMB	'OSTimeTickHook',_OSTimeTickHook,37,1
	?SYMB	'',166,8,34
_OSTimeTickHook	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
; os_cpu_c.c  167	}
	?LINE	167
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTimeTickHook	ENDP
	?SYMB	'',$,17,167
; os_cpu_c.c  168	
; os_cpu_c.c  169	
; os_cpu_c.c  170	#endif
; os_cpu_c.c  171	
; os_cpu_c.c  172	/*
; os_cpu_c.c  173	*********************************************************************************************************
; os_cpu_c.c  174	*                                        BUILD A TASK'S STACK AREA
; os_cpu_c.c  175	*
; os_cpu_c.c  176	* Description: This function is called by OSTaskStkInit to initialise the
; os_cpu_c.c  177	*              stack frame of the task being created.
; os_cpu_c.c  178	*
; os_cpu_c.c  179	* Arguments  : page          is a pointer to the current task user stack page.
; os_cpu_c.c  180	*
; os_cpu_c.c  181	*              offset        is a pointer to the current task user stack offset.
; os_cpu_c.c  182	*
; os_cpu_c.c  183	*              datapag       is a pointer to a user supplied data area page when the task first executes.
; os_cpu_c.c  184	*
; os_cpu_c.c  185	*              datapof       is a pointer to a user supplied data area offset when the task first executes.
; os_cpu_c.c  186	*
; os_cpu_c.c  187	* Returns    : None
; os_cpu_c.c  188	*********************************************************************************************************
; os_cpu_c.c  189	*/
; os_cpu_c.c  190	void OSTaskBuildStk (INT16U page, INT16U offset, INT16U datapag, INT16U datapof)
; os_cpu_c.c  191	{
	?LINE	191
	PUBLIC	_OSTaskBuildStk
	?SYMB	'OSTaskBuildStk',_OSTaskBuildStk,37,1
	?SYMB	'',191,8,34
_OSTaskBuildStk	PROC	FAR
	?SYMB	'',00H,95,0
; @w1 = R12
; @w2 = R13
; @w3 = R14
; @w4 = R15
; Locals:
; 
; CSEs:
;     offset = R13
;     datapof = R15
;     page = R12
;     datapag = R14
; 
	?SYMB	'page',4,99,272
	?SYMB	'offset',3,99,272
	?SYMB	'datapag',2,99,272
	?SYMB	'datapof',1,99,272
	?SYMB	'R12',$,100,4
	?SYMB	'R13',$,100,3
	?SYMB	'R14',$,100,2
	?SYMB	'R15',$,100,1
	?SYMB	'',$,102,4
	?SYMB	'',$,102,3
	?SYMB	'',$,102,2
	?SYMB	'',$,102,1
; os_cpu_c.c  192	#pragma asm(@1=page, @2=offset, @3=datapag, @4=datapof)
	?LINE	192
	?LINE	265
;                                           ; SAVE USED REGISTERS
    PUSH   R1
    PUSH   R2
    PUSH   R3
    PUSH   R4
    PUSH   R10
    PUSH   DPP1

;                                           ; LOAD INITIAL TASK STACK.
    MOV    R4,R13                            ; Get pointer to Task Stack
    MOV    DPP1,R12                          ; Task Stack DPP1:R4
    MOV    R2,R14                            ; Page pointer to passed parameter
    MOV    R3,R15                            ; Offset pointer to passed parameter

;                                           ; ADJUST THE TASK USER OFFSET POINTER
    ADD    R4,#10                           ; Point at user stack offset
    MOV    R1,[R4]                          ; Get initial user offset pointer
    SUB    R1,#2Ch                          ; adjust user offset pointer to save task registers
    MOV    [R4],R1                          ; Save true user offset pointer
    MOV    R4,R13                            ; Reload current stack pointer

;                                           ; INITIALISE REGISTER VALUES
    SUB    R1,R1                            ; Set R1 to zero
    MOV    R10,#01111h                      ; R1 initialised to 1111
    MOV    [-R4],R10
    MOV    R10,#02222h                      ; R2 initialised to 2222
    MOV    [-R4],R10
    MOV    R10,#03333h                      ; R3 initialised to 3333
    MOV    [-R4],R10
    MOV    R10,#04444h                      ; R4 initialised to 4444
    MOV    [-R4],R10
    MOV    R10,#05555h                      ; R5 initialised to 5555
    MOV    [-R4],R10
    MOV    R10,#06666h                      ; R6 initialised to 6666
    MOV    [-R4],R10
    MOV    R10,#07777h                      ; R7 initialised to 7777
    MOV    [-R4],R10
    MOV    R10,#08888h                      ; R8 initialised to 8888
    MOV    [-R4],R10
    MOV    R10,#09999h                      ; R9 initialised to 9999
    MOV    [-R4],R10
    MOV    R10,#0AAAAh                      ; R10 initialised to AAAA
    MOV    [-R4],R10
    MOV    R10,#0BBBBh                      ; R11 initialised to BBBB
    MOV    [-R4],R10
    MOV    R10,R3                           ; R12 initialised to point @ POF of pdata
    MOV    [-R4],R10
    MOV    R10,R2                           ; R13 initialised to point @ PAG of pdata
    MOV    [-R4],R10
    MOV    R10,#0EEEEh                      ; R14 initialised to EEEE
    MOV    [-R4],R10
    MOV    R10,#0FFFFh                      ; R15 initialised to FFFF
    MOV    [-R4],R10
    MOV    R10,CP                           ; Get the Context Pointer (CP)
    MOV    [-R4],R10                        ; Put it on the user stack
    MOV    R10,DPP3                         ; Get Data Page Pointer 3 (DPP3)
    MOV    [-R4],R10                        ; Put it on the user stack
    MOV    R10,DPP2                         ; Get Data Page Pointer 2 (DPP2)
    MOV    [-R4],R10                        ; Put it on the user stack
    MOV    R10,DPP0                         ; Get Data Page Pointer 0 (DPP0)
    MOV    [-R4],R10                        ; Put it on the user stack
    MOV    [-R4],R1                         ; Set Multiply/Divide Control (MDC)
    MOV    [-R4],R1                         ; Set Multiply/Divide High (MDH)
    MOV    [-R4],R1                         ; Set Multiply/Divide Low (MDL)

;                                           ; RESTORE USED REGISTERS
    POP    DPP1
    POP    R10
    POP    R4
    POP    R3
    POP    R2
    POP    R1
; os_cpu_c.c  265	 #pragma endasm
; os_cpu_c.c  266	}
	?LINE	266
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTaskBuildStk	ENDP
	?SYMB	'',$,17,266
; os_cpu_c.c  267	
; os_cpu_c.c  268	/*$PAGE*/
; os_cpu_c.c  269	/*
; os_cpu_c.c  270	*********************************************************************************************************
; os_cpu_c.c  271	*                                       INITIALIZE SYSTEM TICK
; os_cpu_c.c  272	*
; os_cpu_c.c  273	* Description: This function is called to initialize and configure the system interrupt tick.
; os_cpu_c.c  274	*
; os_cpu_c.c  275	* Arguments  : none
; os_cpu_c.c  276	*********************************************************************************************************
; os_cpu_c.c  277	*/
; os_cpu_c.c  278	void  OSTickISRInit (void)
; os_cpu_c.c  279	{
	?LINE	279
	PUBLIC	_OSTickISRInit
	?SYMB	'OSTickISRInit',_OSTickISRInit,37,1
	?SYMB	'',279,8,34
_OSTickISRInit	PROC	FAR
	?SYMB	'',00H,95,0
; Locals:
; 
; CSEs:
; 
; os_cpu_c.c  280	 	IEN=1;					// allg. Interrupt freigeben
	?LINE	280
	BSET	IEN
; os_cpu_c.c  281		T3CON=0x0;				// Mode: Timer, Input Prescaler = 16 -> 26ms -> 38 times/sec,
	?LINE	281
	MOV	T3CON,#00h
; os_cpu_c.c  282		T3IC=68;				// Timer3 Prioritaet und Interrupt freigeben
	?LINE	282
	MOV	T3IC,#044h
; os_cpu_c.c  283		T3R=1;		                                     
	?LINE	283
	BSET	T3R
; os_cpu_c.c  284	}
	?LINE	284
	MOV	R3,[R0+]
	MOV	R2,[R0+]
	ATOMIC	#03h
	PUSH	R3
	PUSH	R2
	RETS
_OSTickISRInit	ENDP
	?SYMB	'',$,17,284
OS_CPU_C_1_PR	ENDS

C166_US	SECTION	DATA WORD GLBUSRSTACK 'CUSTACK'
	DS	20
C166_US	ENDS


	REGDEF	R0-R15
	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区视频视频| 国产成人免费高清| 成人综合在线视频| 欧美另类变人与禽xxxxx| 日本一二三不卡| 久久99最新地址| 欧美日韩黄色一区二区| 亚洲天堂av一区| 国产成人小视频| 欧美一区二区在线免费播放 | 不卡一区二区在线| 欧美电影免费观看高清完整版| 一区二区视频免费在线观看| 国产成人av影院| 日韩免费看的电影| 偷拍日韩校园综合在线| 欧美色涩在线第一页| 欧美国产欧美综合| 国产精品亚洲一区二区三区在线 | 国产精品乱人伦| 另类欧美日韩国产在线| 在线不卡免费欧美| 午夜视频在线观看一区二区| 91免费视频观看| 中文字幕在线不卡一区| 不卡大黄网站免费看| 中文字幕欧美区| 不卡的电视剧免费网站有什么| 久久精品男人的天堂| 国产呦萝稀缺另类资源| 久久综合久久99| 久久精品国产999大香线蕉| 日本一区二区三区免费乱视频| 亚洲精品一区二区三区在线观看| 欧美日韩一区二区三区高清| 2021中文字幕一区亚洲| 国产综合久久久久久久久久久久| 精品国产乱码久久久久久免费| 国精产品一区一区三区mba视频 | 国产精品亲子乱子伦xxxx裸| 国产成人一级电影| 国产精品久久看| 在线精品视频一区二区| 五月天丁香久久| 精品成人免费观看| 国产老肥熟一区二区三区| 中文字幕欧美激情| 色婷婷综合五月| 日韩精品乱码av一区二区| 欧美电影精品一区二区| 亚洲国产精品久久人人爱蜜臀| 91精品国产高清一区二区三区蜜臀| 亚洲国产色一区| 中国av一区二区三区| 91亚洲精品一区二区乱码| 亚洲午夜视频在线| 欧美成人精品高清在线播放 | 亚洲国产精品嫩草影院| 91精品国产乱| hitomi一区二区三区精品| 亚洲va欧美va国产va天堂影院| 欧美一区二区三区爱爱| 成人少妇影院yyyy| 亚洲国产欧美另类丝袜| 久久蜜桃香蕉精品一区二区三区| 成人av网站在线| 奇米在线7777在线精品| 国产精品免费aⅴ片在线观看| 欧美性xxxxx极品少妇| 国产一区二区三区在线观看免费视频| 亚洲同性同志一二三专区| 欧美一级搡bbbb搡bbbb| 成人av在线影院| 久久黄色级2电影| 亚洲天堂2014| 2021中文字幕一区亚洲| 精品视频1区2区| 成人a级免费电影| 久久精品99国产精品日本| 亚洲精品一二三区| 久久久亚洲欧洲日产国码αv| 精品1区2区3区| 99热这里都是精品| 精品亚洲免费视频| 亚洲国产精品欧美一二99| 国产精品国产三级国产aⅴ原创| 91精品国产入口在线| 欧美主播一区二区三区| 波多野结衣的一区二区三区| 激情av综合网| 免费一级欧美片在线观看| 亚洲专区一二三| 中文字幕五月欧美| 久久久99精品免费观看不卡| 欧美一区二区在线看| 欧美午夜精品久久久久久超碰| 波波电影院一区二区三区| 国产美女在线观看一区| 男女男精品视频网| 天天做天天摸天天爽国产一区| 亚洲一区中文日韩| 亚洲欧美视频在线观看视频| 国产精品你懂的| 国产精品精品国产色婷婷| 欧美国产日韩在线观看| 久久久久久影视| 久久久国产一区二区三区四区小说| 这里只有精品视频在线观看| 欧美美女一区二区| 国产精品色婷婷久久58| 欧美国产1区2区| 国产精品美女视频| **性色生活片久久毛片| 国产精品初高中害羞小美女文| 国产精品妹子av| 综合亚洲深深色噜噜狠狠网站| 中文字幕亚洲成人| 一区二区三区在线免费| 亚洲午夜日本在线观看| 日韩精品免费专区| 秋霞国产午夜精品免费视频| 理论片日本一区| 国产成人精品三级麻豆| 丁香激情综合五月| 99久久er热在这里只有精品15 | 91精品国产色综合久久不卡电影 | 欧美精品一区二区不卡| 国产夜色精品一区二区av| 欧美国产精品一区二区| 亚洲欧美另类在线| 肉肉av福利一精品导航| 久久99精品久久久久| 成人网男人的天堂| 色欧美88888久久久久久影院| 欧美无砖专区一中文字| 欧美精品一二三| 国产午夜亚洲精品理论片色戒 | 国产精品久久久久久久久果冻传媒 | 欧美日韩在线亚洲一区蜜芽| 日韩情涩欧美日韩视频| 91在线云播放| 欧美日韩国产成人在线免费| 精品国精品国产| 亚洲欧洲三级电影| 亚洲国产一区二区三区| 另类小说视频一区二区| 91麻豆国产精品久久| 亚洲女同ⅹxx女同tv| 亚洲成人综合在线| 国产一区福利在线| 欧美中文字幕亚洲一区二区va在线| 91精品国产综合久久久久久漫画| 国产亚洲一区二区三区四区| 亚洲国产精品欧美一二99| 国产一区在线看| 精品视频123区在线观看| 国产目拍亚洲精品99久久精品| 香蕉加勒比综合久久| 国产丶欧美丶日本不卡视频| 欧美日韩一本到| 国产精品久久久久天堂| 美日韩黄色大片| 欧美在线制服丝袜| 中文字幕精品一区二区精品绿巨人| 亚洲成av人片在线| 99免费精品在线| 日韩欧美精品在线视频| 亚洲夂夂婷婷色拍ww47| 成人午夜又粗又硬又大| 欧美色国产精品| 成人免费的视频| 欧美国产激情一区二区三区蜜月| 天天爽夜夜爽夜夜爽精品视频| 成人丝袜18视频在线观看| 亚洲一级在线观看| aaa欧美日韩| 亚洲国产成人私人影院tom | 欧美日韩一级二级| 亚洲精品视频在线看| 白白色 亚洲乱淫| 中文字幕巨乱亚洲| 国产一区在线不卡| 欧美videofree性高清杂交| 午夜免费欧美电影| 在线观看91视频| 亚洲另类春色校园小说| www.亚洲在线| 国产欧美日韩在线视频| 国产麻豆精品在线观看| 日韩精品最新网址| 日本少妇一区二区| 91精品国产综合久久精品 | 在线观看精品一区| 一区二区在线观看视频在线观看| 成人三级伦理片| 成人欧美一区二区三区在线播放| 成年人午夜久久久| 亚洲色图欧洲色图婷婷| 97精品久久久午夜一区二区三区| 国产精品免费久久久久|