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

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

?? os_cpu_a.asm

?? UcOS2.76在ATMEL AT91RM9200 ARM9上的移植代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
        LDR     R0, ??OS_TaskSwHook     ; OSTaskSwHook();
        MOV     LR, PC
        BX      R0

        LDR     R4,??OS_PrioCur         ; OSPrioCur = OSPrioHighRdy
        LDR     R5,??OS_PrioHighRdy
        LDRB    R6,[R5]
        STRB    R6,[R4]

        LDR     R4,??OS_TCBCur          ; OSTCBCur  = OSTCBHighRdy;
        LDR     R6,??OS_TCBHighRdy
        LDR     R6,[R6]
        STR     R6,[R4]

        LDR     SP,[R6]                 ; SP = OSTCBHighRdy->OSTCBStkPtr;

                                        ; RESTORE NEW TASK'S CONTEXT
        LDMFD   SP!, {R4}               ;    Pop new task's CPSR
        MSR     SPSR_cxsf, R4

        LDMFD   SP!, {R0-R12,LR,PC}^    ;    Pop new task's context


;*********************************************************************************************************
;                                      IRQ Interrupt Service Routine
;*********************************************************************************************************

        RSEG CODE:CODE:NOROOT(2)
        CODE32

OS_CPU_IRQ_ISR

	STMFD	sp!, {r4}                ;/* 這個SP是IRQ模式下的*/
	
	LDR		r4, =LINK_SAVE
	STR		lr, [r4]				 ;/* LINK_SAVE = lr_irq */

	LDR		lr, =PSR_SAVE
	MRS		r4,	spsr
	STR		r4, [lr]			 ;/*	 PSR_SAVE = spsr_irq  */


	LDMFD	sp!, {r4}                ;/* 重新恢復R4 */
	
	MRS		lr,	spsr
	ORR		lr, lr,	#0x80		;/*	 Mask irq for context switching before */
	MSR		cpsr_cxsf, lr 		;/*	returning back from irq mode.我們還沒有 */
								;	/* 保存好現(xiàn)場,如果打開中斷,就有可能發(fā)生新的 */
								;	/* 搶占式調(diào)度,于是這個現(xiàn)場就OVER了。現(xiàn)場保 */
								;	/* 護和現(xiàn)場恢復都要一氣呵成 */

	SUB		sp, sp, #4			;	 /* Space for PC  這個SP是svc(任務)模式下的*/
	STMFD	sp!, {r0-r12, lr}

	LDR		r4, =LINK_SAVE
	LDR		lr, [r4, #0]
	SUB		lr, lr, #4			;	 /* PC = LINK_SAVE - 4 */
	STR		lr, [sp, #(14*4)]	;	 /* SAVE PC [..]the return address for pc */

	LDR		r4, =PSR_SAVE
	LDR		r4, [r4]			; /* r4 = PSR_SAVE */
	STMFD	sp!, {r4}		      ;   /* CPSR of the task */

 	LDR		r5, =OSIntNesting
 	LDRB 	r4, [r5]
 	ADD     r4, r4, #1   ;/* OSIntNesting++ */
 	STRB     r4, [r5]
 	CMP		r4, #1
 	
 	BNE		NOT_FIRST
 	
	LDR		r4, =OSTCBCur
	LDR		r4, [r4]
	STR		sp, [r4]				; /* OSTCBCur -> stkptr = sp  保存現(xiàn)場完畢 */

NOT_FIRST

	LDR  r4, =0xFFFFF100  ;AT91C_AIC_IVR
	LDR  r4, [r4]				;/*獲得中斷向量,同時清除中斷,邊沿觸發(fā)時功能同上面注釋得的代碼*/
	CMP	 r4, #0
	BEQ   EXIT_INT

    MRS     R0,CPSR                     ;/* 開中斷*/
    AND     R1,R0,#0xffffff7f;
    MSR     CPSR_c,R1

	MOV  lr, pc
	BX   r4	

EXIT_INT
    MRS     R0,CPSR                     ;/*關閉中斷*/
    ORR     R4,R0,#0x80;
    MSR     CPSR_c,R4
								
	LDR  r4, =0xFFFFF130  ;AT91C_AIC_EOICR
	STR  r0, [r4]				;/*中斷服務程序處理完成*/
	
	BL	OSIntExit
	
	LDMFD 	sp!, {r4}              ;  /* pop current task cpsr */
	MSR 	cpsr_cxsf, r4
	LDMFD 	sp!, {r0-r12,lr,pc}    ;  /*  pop current task r0-r12,lr & pc */



;*********************************************************************************************************
;                                      FIQ Interrupt Service Routine
;*********************************************************************************************************

        RSEG CODE:CODE:NOROOT(2)
        CODE32

OS_CPU_FIQ_ISR

        STMFD   SP!, {R1-R3}                   ; PUSH WORKING REGISTERS ONTO FIQ STACK

        MOV     R1, SP                         ; Save   FIQ stack pointer

        ADD     SP, SP,#12                     ; Adjust FIQ stack pointer

        SUB     R2, LR,#4                      ; Adjust PC for return address to task

        MRS     R3, SPSR                       ; Copy SPSR (i.e. interrupted task's CPSR) to R3

        MSR     CPSR_c, #(NO_INT | SVC32_MODE) ; Change to SVC mode

                                               ; SAVE TASK'S CONTEXT ONTO TASK'S STACK
        STMFD   SP!, {R2}                      ;    Push task's Return PC
        STMFD   SP!, {LR}                      ;    Push task's LR
        STMFD   SP!, {R4-R12}                  ;    Push task's R12-R4

        LDMFD   R1!, {R4-R6}                   ;    Move task's R1-R3 from FIQ stack to SVC stack
        STMFD   SP!, {R4-R6}
        STMFD   SP!, {R0}                      ;    Push task's R0    onto task's stack
        STMFD   SP!, {R3}                      ;    Push task's CPSR (i.e. FIQ's SPSR)

                                               ; HANDLE NESTING COUNTER
        LDR     R0, ??OS_IntNesting            ; OSIntNesting++;
        LDRB    R1, [R0]
        ADD     R1, R1,#1
        STRB    R1, [R0]

        CMP     R1, #1                         ; if (OSIntNesting == 1) {
        BNE     OS_CPU_FIQ_ISR_1

        LDR     R4, ??OS_TCBCur                ;     OSTCBCur->OSTCBStkPtr = SP
        LDR     R5, [R4]
        STR     SP, [R5]                       ; }

OS_CPU_FIQ_ISR_1
        MSR     CPSR_c, #(NO_INT | FIQ32_MODE) ; Change to FIQ mode (to use the FIQ stack to handle interrupt)

      ;  LDR     R0, ??OS_CPU_FIQ_ISR_Handler   ; OS_CPU_FIQ_ISR_Handler();
      ;  MOV     LR, PC
      ;  BX      R0

        MSR     CPSR_c, #(NO_INT | SVC32_MODE) ; Change to SVC mode

        LDR     R0, ??OS_IntExit               ; OSIntExit();
        MOV     LR, PC
        BX      R0

                                               ; RESTORE NEW TASK'S CONTEXT
        LDMFD   SP!, {R4}                      ;    Pop new task's CPSR
        MSR     SPSR_cxsf, R4

        LDMFD   SP!, {R0-R12,LR,PC}^           ;    Pop new task's context


;*********************************************************************************************************
;                                     POINTERS TO VARIABLES
;*********************************************************************************************************

        DATA

??OS_TaskSwHook:
        DC32    OSTaskSwHook

??OS_CPU_IRQ_ISR_Handler:
        DC32    OS_CPU_IRQ_ISR_Handler

??OS_CPU_FIQ_ISR_Handler:
        DC32    0; OS_CPU_FIQ_ISR_Handler

??OS_IntExit:
        DC32    OSIntExit

??OS_IntNesting:
        DC32    OSIntNesting

??OS_PrioCur:
        DC32    OSPrioCur

??OS_PrioHighRdy:
        DC32    OSPrioHighRdy

??OS_Running:
        DC32    OSRunning

??OS_TCBCur:
        DC32    OSTCBCur

??OS_TCBHighRdy:
        DC32    OSTCBHighRdy


LINK_SAVE:
        DC32	0x00
PSR_SAVE:
        DC32	0x00
INTMSK_SAVE:
        DC32	0x00


        END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人在线观看视频| 久久精品国产**网站演员| 欧美成人a∨高清免费观看| 成人av网站大全| 蜜臀av性久久久久av蜜臀妖精| 亚洲欧洲一区二区在线播放| 精品国产乱码久久久久久闺蜜| 欧美伊人久久久久久久久影院| 成人精品视频网站| 麻豆国产91在线播放| 亚洲国产wwwccc36天堂| 亚洲欧美另类综合偷拍| 日本一区二区高清| 日韩精品一区二区在线| 欧美一a一片一级一片| 成人的网站免费观看| 国产乱理伦片在线观看夜一区| 午夜久久久久久久久久一区二区| 日韩理论片网站| 国产网红主播福利一区二区| 精品久久久网站| 日韩欧美一级片| 日韩视频在线观看一区二区| 91福利在线免费观看| 99精品黄色片免费大全| 国产91精品入口| 国产不卡免费视频| 国产一区二区视频在线播放| 久久99精品一区二区三区| 蜜臀av在线播放一区二区三区| 午夜精品久久久久久| 亚洲国产一区在线观看| 亚洲成a人片在线观看中文| 亚洲在线观看免费| 亚洲一区二区在线观看视频| 一区二区三区高清在线| 亚洲午夜激情网站| 亚洲成av人片在线观看无码| 亚洲成av人片在线观看| 天堂成人免费av电影一区| 午夜精品一区二区三区免费视频| 亚洲国产精品欧美一二99| 亚洲图片欧美综合| 日韩高清一级片| 美女脱光内衣内裤视频久久网站| 另类调教123区 | 亚洲国产欧美日韩另类综合 | 久久婷婷国产综合精品青草| 精品福利在线导航| 久久免费看少妇高潮| 中文字幕高清一区| 伊人性伊人情综合网| 亚洲国产综合在线| 热久久免费视频| 国产在线播精品第三| 福利一区在线观看| 色综合天天做天天爱| 欧美精品色综合| www国产成人| 国产精品久久久久四虎| 亚洲综合一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 91丝袜高跟美女视频| 欧美亚日韩国产aⅴ精品中极品| 91精品国产色综合久久不卡电影| 久久嫩草精品久久久精品| 中文字幕一区二区在线观看 | 福利91精品一区二区三区| 成人高清视频在线| 欧美性生交片4| 亚洲精品一区二区三区影院| 国产精品久99| 日韩精品欧美成人高清一区二区| 国产一区二区三区四区在线观看| 91色在线porny| 91精品国产综合久久蜜臀| 国产女人aaa级久久久级| 樱花影视一区二区| 激情五月婷婷综合网| 日本黄色一区二区| 精品国产三级电影在线观看| 亚洲欧洲日产国码二区| 日本不卡的三区四区五区| heyzo一本久久综合| 欧美一级欧美三级在线观看| 国产精品久久久久久久久快鸭| 日韩专区一卡二卡| 99久久er热在这里只有精品15 | 91精品婷婷国产综合久久| 欧美激情自拍偷拍| 三级欧美在线一区| 97超碰欧美中文字幕| 亚洲精品一区二区三区影院| 亚洲国产日韩综合久久精品| 成人理论电影网| 精品成人一区二区三区| 婷婷开心激情综合| 97se亚洲国产综合自在线不卡| 精品电影一区二区| 日韩av一级电影| 色老汉一区二区三区| 国产日韩欧美一区二区三区乱码| 亚洲va欧美va人人爽午夜| 99久久精品情趣| 久久久一区二区三区| 轻轻草成人在线| 91豆麻精品91久久久久久| 国产精品天美传媒沈樵| 麻豆精品久久久| 3751色影院一区二区三区| 亚洲欧美日韩国产中文在线| 国v精品久久久网| 久久综合色天天久久综合图片| 奇米四色…亚洲| 欧美色大人视频| 一区二区三区波多野结衣在线观看| 国产精品一区在线观看你懂的| 91精品免费观看| 三级亚洲高清视频| 欧美精品乱人伦久久久久久| 亚洲一区二区精品视频| 91成人国产精品| 一区二区三区四区亚洲| 色综合久久天天综合网| 最好看的中文字幕久久| 成人的网站免费观看| 国产精品免费丝袜| 国产91精品露脸国语对白| 久久久美女艺术照精彩视频福利播放| 麻豆91精品视频| 日韩视频一区二区三区在线播放 | 日韩视频免费观看高清在线视频| 午夜久久久久久| 欧美精品黑人性xxxx| 日日噜噜夜夜狠狠视频欧美人 | 午夜电影一区二区| 精品视频1区2区3区| 亚洲电影一区二区三区| 欧美男同性恋视频网站| 丝袜亚洲另类欧美| 555www色欧美视频| 日本成人在线看| 精品欧美一区二区三区精品久久| 久久99在线观看| 国产亚洲精品久| www.亚洲免费av| 亚洲一二三四在线观看| 欧美一二三区在线观看| 激情五月婷婷综合| 久久精品网站免费观看| 99免费精品在线| 一区二区三区中文字幕精品精品| 在线精品视频免费观看| 日韩电影在线免费| 精品国产麻豆免费人成网站| 国产成人精品午夜视频免费| 亚洲欧美日韩一区二区三区在线观看| 色哟哟在线观看一区二区三区| 亚洲成人在线网站| 精品国精品国产| 成人av资源在线| 亚洲国产精品久久久久婷婷884| 日韩一二在线观看| 国产成人自拍网| 夜夜嗨av一区二区三区| 欧美tickling挠脚心丨vk| 成人综合婷婷国产精品久久| 一区二区三区久久久| 日韩免费在线观看| 成人一级片网址| 午夜精品久久久久久久久| 久久综合国产精品| 色婷婷综合中文久久一本| 奇米色777欧美一区二区| 国产亚洲va综合人人澡精品| 日本道精品一区二区三区| 精品一区中文字幕| 一区二区三区影院| 久久天天做天天爱综合色| 色吧成人激情小说| 激情文学综合网| 午夜av一区二区三区| 国产欧美日本一区二区三区| 欧美日高清视频| 床上的激情91.| 美女网站一区二区| 亚洲一区二区四区蜜桃| 久久久蜜臀国产一区二区| 欧美高清视频在线高清观看mv色露露十八 | 欧美精品一区二区在线播放| 99久久久免费精品国产一区二区| 六月丁香综合在线视频| 一区二区三区四区在线免费观看 | 日韩不卡一区二区三区 | 亚洲高清不卡在线观看| 国产精品拍天天在线| 日韩精品一区在线| 欧美日韩国产经典色站一区二区三区 | 国产一区二区三区高清播放| 亚洲国产精品嫩草影院|