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

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

?? os_cpu_c.src

?? uc/os在c167上的移植代碼
?? 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一区二区三区免费野_久草精品视频
欧美久久高跟鞋激| 91精品国产入口在线| 亚洲最新视频在线播放| 欧美白人最猛性xxxxx69交| 在线免费观看日韩欧美| 99久久精品国产麻豆演员表| 狠狠网亚洲精品| 青青青伊人色综合久久| 洋洋成人永久网站入口| 日韩精品国产精品| 天天影视色香欲综合网老头| 亚洲国产综合人成综合网站| 国产精品乱码人人做人人爱| 久久蜜桃av一区精品变态类天堂 | 精品国产成人系列| 在线成人高清不卡| 国产片一区二区| 国产精品美女一区二区三区 | 亚洲人快播电影网| 国产精品全国免费观看高清| 亚洲成人av电影在线| 日韩精品成人一区二区在线| 丁香婷婷综合五月| 99国产一区二区三精品乱码| 日韩欧美精品在线视频| 日韩免费视频一区| 亚洲国产一区视频| 91免费观看视频| 在线播放中文一区| 亚洲人精品午夜| 成人激情开心网| 欧美亚洲综合另类| 欧美大片一区二区| 亚洲成av人片www| 在线欧美日韩精品| 中文字幕在线不卡国产视频| 亚洲高清免费在线| a级精品国产片在线观看| 91电影在线观看| 欧美久久高跟鞋激| 亚洲综合在线五月| 在线免费观看一区| 一区二区三区日韩精品视频| 色综合久久99| 欧美一级片在线观看| 午夜精品久久久久| 欧美精品免费视频| 亚洲成a天堂v人片| 在线成人免费视频| 美女免费视频一区| 91丨九色丨国产丨porny| 欧美激情一区二区三区不卡| 一二三四社区欧美黄| 99精品视频中文字幕| 国产精品国产a级| 蜜臀av一区二区| 日韩欧美成人一区二区| 九九久久精品视频| 欧美性大战久久| 亚洲18女电影在线观看| 欧美日韩精品一区视频| 国产精品久久夜| 91亚洲精品一区二区乱码| 日韩美女啊v在线免费观看| 久久精品国产亚洲5555| 成人动漫在线一区| 亚洲女性喷水在线观看一区| 欧美无砖砖区免费| 日本在线不卡视频| 欧美日韩一区国产| 亚洲情趣在线观看| 欧美日韩在线播放三区四区| 日韩中文字幕麻豆| 久久久99久久精品欧美| 亚洲chinese男男1069| 欧美另类videos死尸| 蜜桃视频在线一区| 欧美激情在线一区二区| 色av一区二区| 另类人妖一区二区av| 国产精品久久久久一区| 欧美亚洲国产一区在线观看网站| 日韩国产欧美在线播放| 国产色产综合色产在线视频 | 亚洲综合免费观看高清完整版在线 | 亚洲日本在线看| 3atv一区二区三区| 性做久久久久久久免费看| 欧美刺激脚交jootjob| 99精品视频一区| 免费在线看一区| 最新高清无码专区| 欧美成人video| 色婷婷亚洲精品| 国产精品一区一区| 精品日韩一区二区三区| 99vv1com这只有精品| 裸体歌舞表演一区二区| 一区二区三区在线不卡| 久久久久9999亚洲精品| 欧美精品一卡二卡| 91丨porny丨首页| 国产精品自产自拍| 日韩**一区毛片| 亚洲人精品午夜| 中文字幕欧美日本乱码一线二线 | 中文字幕成人网| 91精品国产综合久久久久久 | 国产99精品视频| 麻豆视频观看网址久久| 一区二区三区视频在线看| 国产精品私人影院| 久久女同性恋中文字幕| 欧美一区二区观看视频| 欧美丝袜丝nylons| 99久久综合精品| 成人免费av在线| 亚洲午夜精品网| 亚洲精品视频一区| 欧美一级爆毛片| 成人午夜电影小说| 国产在线精品不卡| 亚洲欧美国产三级| 中文字幕中文乱码欧美一区二区| 精品久久久久久久久久久久包黑料| 欧美美女视频在线观看| 欧美在线观看视频一区二区三区| 不卡电影免费在线播放一区| 成人精品免费网站| 99热99精品| 一本色道**综合亚洲精品蜜桃冫| 成人精品免费网站| 99久久夜色精品国产网站| 不卡的电视剧免费网站有什么| 国产成人免费视| 香蕉加勒比综合久久| 亚洲国产精品久久一线不卡| 亚洲国产精品欧美一二99| 婷婷成人激情在线网| 青青草国产成人av片免费| 青青青伊人色综合久久| 久久精品国产亚洲a| 国产一区二区在线观看免费| 国产成人免费网站| www.爱久久.com| 91福利国产精品| 欧美一区二区三区视频在线观看| 欧美第一区第二区| 国产欧美精品国产国产专区| 中文av一区二区| 亚洲一区在线观看免费观看电影高清 | 日本欧美久久久久免费播放网| 日韩精品成人一区二区三区| 久久精品国产澳门| 国产69精品久久久久毛片 | 视频在线在亚洲| 国产美女视频一区| 97精品国产露脸对白| 欧美日韩日本视频| 欧美精品一区二区蜜臀亚洲| 国产精品伦一区二区三级视频| 亚洲黄色在线视频| 久久国产尿小便嘘嘘尿| 成人手机电影网| 欧美日韩在线电影| 亚洲精品一区二区三区香蕉| 日韩伦理电影网| 秋霞午夜av一区二区三区| 国产成人在线视频网站| 欧洲生活片亚洲生活在线观看| 日韩一级二级三级| 亚洲日本va在线观看| 男男成人高潮片免费网站| 成人av电影免费观看| 日韩一区二区三区视频在线| 国产精品久久99| 美女视频第一区二区三区免费观看网站 | 欧美激情一区在线观看| 亚洲成av人片一区二区三区| 国产成人精品亚洲日本在线桃色| 欧美三级日韩三级| 国产精品拍天天在线| 免费观看在线色综合| 91浏览器在线视频| 久久嫩草精品久久久精品| 亚洲bdsm女犯bdsm网站| 91麻豆国产福利精品| 久久这里只有精品6| 中文字幕免费不卡在线| 婷婷夜色潮精品综合在线| 91色.com| 国产免费成人在线视频| 国产自产视频一区二区三区| 欧美片网站yy| 一区二区三区免费网站| 成人教育av在线| 久久久精品中文字幕麻豆发布| 日本不卡在线视频| 5月丁香婷婷综合| 亚洲风情在线资源站|