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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? os_cpu_a.s

?? uC/OSii ARM7上源碼
?? S
字號:
        .file   "os_cpu_a.S".text    @-------------------------------------------------------------------------        .align  2        .global OSStartHighRdy        .type    OSStartHighRdy,functionOSStartHighRdy:	@ // 1) 調(diào)用 用戶編寫的 hook 函數(shù)        BL 	OSTaskSwHook             @ Call user defined task switch hook	@ // 2) 設(shè)置 OSRunning 變量為 true , 表示多任務(wù)調(diào)度開始        LDR 	r4,=OSRunning           @ Indicate that multitasking has started        MOV 	r5, #1        STRB 	r5, [r4]	@ // 3) 獲得最高優(yōu)先級任務(wù)的 TCB 塊指針,得到該任務(wù)的堆棧,	@ //    從堆棧中依次恢復(fù)出 SPSR, CPSR, r0-r12, lr, pc        LDR 	r4, =OSTCBHighRdy        @ Get highest priority task TCB address        LDR 	r4, [r4]                 @ get stack pointer        LDR 	sp, [r4]                 @ switch to the new stack        LDMFD 	sp!, {r4}              @ pop new task s spsr        MSR 	SPSR, r4        LDMFD 	sp!, {r4}              @ pop new task s psr        MSR 	CPSR, r4        LDMFD 	sp!, {r0-r12,lr,pc}    @ pop new task s r0-r12,lr & pc 		@ End of OSStartHighRdy    @-----------------------------------------------------------------------        .align  2        .global OSCtxSw        .type    OSCtxSw,functionOSCtxSw:/*	Perform a context switch.	On entry, OSTCBCur and OSPrioCur hold the current TCB and priority	and OSTCBHighRdy and OSPrioHighRdy contain the same for the task	to be switched to.	The following code assumes that the virtual memory is directly	mapped into  physical memory. If this is not true, the cache must 	be flushed at context switch to avoid address aliasing.*/	@ // 1) PUSH ALL 將當(dāng)前執(zhí)行任務(wù)的 CPU 現(xiàn)場保存到 該任務(wù)的堆棧中	@ //    依次將 pc, lr, r12-r0, CPSR, SPSR 推入 堆棧 sp 中        STMFD 	sp!, {lr}              @ push pc (lr should be pushed in place of PC)        STMFD 	sp!, {r0-r12,lr}       @ push lr & register file        MRS 	r4, cpsr        STMFD 	sp!, {r4}              @ push current psr        MRS 	r4, spsr        STMFD 	sp!, {r4}              @ push current spsr	@ // 2) 設(shè)置當(dāng)前優(yōu)先級為最高任務(wù)的優(yōu)先級 OSPrioHighRdy        @ OSPrioCur = OSPrioHighRdy        LDR 	r4, =OSPrioCur        LDR 	r5, =OSPrioHighRdy        LDRB 	r6, [r5]        STRB 	r6, [r4]                @ // 3) 獲得當(dāng)前執(zhí)行任務(wù)的 TCB 塊指針        @ Get current task TCB address        LDR 	r4, =OSTCBCur        LDR 	r5, [r4]        STR 	sp, [r5]                 @ store sp in preempted tasks s TCB	@ // 4) 調(diào)用用戶定義的 hook 函數(shù)        BL 	OSTaskSwHook             @ call Task Switch Hook	@ // 5) 獲得最高優(yōu)先級任務(wù)的 TCB 塊指針, 并且將它的堆棧指針復(fù)制到 CPU 的 sp 中, 改變當(dāng)前堆棧        @ Get highest priority task TCB address        LDR 	r6, =OSTCBHighRdy        LDR 	r6, [r6]        LDR 	sp, [r6]                 @ get new task s stack pointer	@ // 6) 將最高優(yōu)先級任務(wù)的 TCB 塊指針 復(fù)制到 當(dāng)前任務(wù) TCB 指針中        @ OSTCBCur = OSTCBHighRdy        STR 	r6, [r4]                 @ set new current task TCB address	@ // 7) 將堆棧中保存的最高優(yōu)先級任務(wù)的 CPU 現(xiàn)場恢復(fù)出來	@ //    一次從堆棧中彈出 SPSR, CPSR, r0-r12, lr, pc        LDMFD 	sp!, {r4}              @ pop new task s spsr        MSR 	SPSR, r4        LDMFD 	sp!, {r4}              @ pop new task s psr        MSR 	CPSR, r4        LDMFD 	sp!, {r0-r12,lr,pc}    @ pop new task s r0-r12,lr & pc    @-----------------------------------------------------------------------        .align  2        .global OSIntCtxSw        .type    OSIntCtxSw,functionOSIntCtxSw:		@ // 1) 這個就是會被 OSIntExit() 調(diào)用的 OSIntCtxSw() 函數(shù)入口	@ //    在這里的處理僅僅是設(shè)置了一個標(biāo)志位 OSIntCtxSwFlag = True        @ OSIntCtxSwFlag = True        LDR 	r0, =OSIntCtxSwFlag        MOV 	r1, #1        STR 	r1, [r0]                @ // 2) 函數(shù)返回        MOV 	pc, lr	 .align  2        .global  OSTickISR        .type    OSTickISR,functionOSTickISR:	@ // 1) PUSH ALL 將當(dāng)前執(zhí)行任務(wù)的 CPU 現(xiàn)場保存到 該任務(wù)的堆棧中	STMDB	sp!, {r0-r11, lr}		@ // 2) 調(diào)用系統(tǒng)中斷進(jìn)入和退出的 hook 函數(shù)	@BL	OSIntEnter	BL 	OSTimeTick	BL	do_IRQ	@BL	OSIntExit		@ // 3) 從 OSIntExit() 中退出時,如果需要進(jìn)行中斷級的上下文切換,則系統(tǒng)會調(diào)用 OSIntCtxSw	@ //	其結(jié)果就是 此時的標(biāo)志位 OSIntCtxSwFlag == True	LDR	r0, =OSIntCtxSwFlag	LDR 	r1, [r0]	CMP	r1, #1	BEQ	_IntCtxSw	@ // 如果此時標(biāo)志位被設(shè)置,則跳轉(zhuǎn)到 _IntCtxSw 執(zhí)行中斷級的上下文切換		@ // 4) 如果此時 標(biāo)志位 沒有被設(shè)置, 則不需要進(jìn)行調(diào)度,直接從中斷中返回原來的任務(wù)	LDMFD	sp!, {r0-r11, lr}	SUBS	pc, lr, #4	_IntCtxSw:	@ // 3.0) 改變處理器模式, 	MRS	lr, SPSR	AND	lr, lr, #0xFFFFFFE0	ORR	lr, lr, #0x13	MSR	CPSR, lr		@ // 3.1) 先恢復(fù)堆棧指針 sp 到初始位置:即 1) PUSH ALL 以前的值,同時恢復(fù)原來任務(wù)的上下文	LDMFD	sp!, {r0-r11, lr}	SUB	lr, lr, #4	@ // 3.2) 執(zhí)行跳轉(zhuǎn)到 任務(wù)上下文的切換 代碼		B	OSCtxSw	    @----------------------------------------------------------------------        .align  2        .global ARMDisableInt        .type    ARMDisableInt,functionARMDisableInt:		@ // 1) 保存 CPSR 到當(dāng)前任務(wù)的堆棧 => push CPSR	MRS	r0, CPSR	STMFD	sp!, {r0}			@ push current PSR		@ // 2) 設(shè)置 CPSR 的中斷屏蔽位 	@ORR	r0, r0, #0xC0		@ mask IRQ Int s	ORR	r0, r0, #0x80		@ mask IRQ Int s		@ // 3) 屏蔽中斷	MSR	CPSR, r0			@ disable IRQ Int s		@ // 4) 返回	MOV	pc, lr    @------------------------------------------------------------------------        .align  2        .global ARMEnableInt        .type    ARMEnableInt,functionARMEnableInt:		@ // 1) 從堆棧中彈出 CPSR => pop CPSR 到 r0	LDMFD	sp!, {r0}			@ pop current PSR		@ // 2) 用 r0 來恢復(fù) CPSR	MSR	CPSR, r0			@ restore original CPSR		@ // 3) 返回	MOV	pc, lr    @------------------------------------------------------------------------    @-------------------------------------------------------------------------

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费人成网站在线观看欧美高清| 国产精品影视在线观看| 国内外成人在线| 在线一区二区视频| 久久久99精品免费观看不卡| 亚洲乱码中文字幕| 丁香一区二区三区| 日韩一二三区不卡| 亚洲一区二区三区四区五区黄| 国产麻豆精品久久一二三| 欧美老肥妇做.爰bbww| 亚洲欧洲精品一区二区三区| 美女任你摸久久 | 乱一区二区av| 日本乱码高清不卡字幕| 国产视频亚洲色图| 激情文学综合插| 日韩欧美亚洲一区二区| 日韩精品一二三| 欧美三区在线观看| 亚洲图片欧美综合| 在线观看成人小视频| 亚洲视频一区在线| 成人精品国产福利| 欧美高清在线精品一区| 国产精品一区在线观看乱码| 精品国产一区a| 美国毛片一区二区| 欧美一级国产精品| 麻豆精品视频在线| 日韩亚洲电影在线| 精品在线一区二区三区| 欧美成人福利视频| 国产原创一区二区三区| 久久综合成人精品亚洲另类欧美| 日本欧美一区二区在线观看| 777奇米成人网| 日本成人在线不卡视频| 日韩精品影音先锋| 国产九色sp调教91| 日本一区二区三区dvd视频在线 | 一区二区三区在线观看动漫| 成人app软件下载大全免费| 亚洲人成伊人成综合网小说| 色屁屁一区二区| 午夜视黄欧洲亚洲| 日韩欧美你懂的| 国产一区不卡视频| 最新国产の精品合集bt伙计| 99re热这里只有精品免费视频| 亚洲欧美综合网| 欧美日韩亚洲综合一区 | 中文字幕一区二区三区在线观看 | 国产精品一区二区三区乱码| 久久精品男人天堂av| 99热这里都是精品| 亚洲成av人片在www色猫咪| 日韩一区二区三区三四区视频在线观看 | 欧美性一级生活| 日韩制服丝袜av| 国产性做久久久久久| 99精品欧美一区二区三区小说| 一区二区三区国产豹纹内裤在线 | 亚洲成人av在线电影| 日韩免费视频一区| caoporen国产精品视频| 亚洲国产成人av好男人在线观看| 日韩美女一区二区三区四区| jlzzjlzz亚洲日本少妇| 青娱乐精品视频| 国产精品白丝在线| 日韩一区二区在线免费观看| www.日本不卡| 老司机精品视频导航| 亚洲三级免费观看| 欧美岛国在线观看| 一本久道久久综合中文字幕 | 欧美日韩一区二区三区免费看| 麻豆成人在线观看| 亚洲欧美一区二区三区孕妇| 日韩欧美一区二区久久婷婷| 91亚洲国产成人精品一区二区三| 日本午夜一本久久久综合| 亚洲欧洲成人自拍| 久久一区二区视频| 欧美二区在线观看| 91黄色免费版| 成人午夜av电影| 毛片基地黄久久久久久天堂| 亚洲综合在线视频| 国产精品久久久久桃色tv| 精品美女一区二区三区| 欧美日韩精品欧美日韩精品| 成人99免费视频| 国产福利一区在线| 久久综合综合久久综合| 亚洲一二三四区不卡| 成人免费视频在线观看| 久久夜色精品国产噜噜av| 日韩一二三区不卡| 欧美一区二区三区视频免费| 在线区一区二视频| 色婷婷综合五月| 99久久伊人网影院| 成人三级伦理片| 国产一区 二区| 国产一区日韩二区欧美三区| 免费观看在线色综合| 婷婷一区二区三区| 日本人妖一区二区| 美国十次综合导航| 捆绑紧缚一区二区三区视频| 日韩精品亚洲一区| 日韩电影在线观看一区| 日本免费新一区视频| 天天操天天干天天综合网| 亚洲国产精品天堂| 日韩在线观看一区二区| 视频一区二区不卡| 蜜桃久久av一区| 国产揄拍国内精品对白| 国产精品一区二区三区乱码| 国产高清在线精品| www.亚洲精品| 日本高清不卡在线观看| 欧美三级电影在线看| 欧美精品 日韩| 久久综合九色综合欧美就去吻 | 国产精品日日摸夜夜摸av| 国产清纯白嫩初高生在线观看91 | 日本乱码高清不卡字幕| 欧美亚洲动漫精品| 日韩一级视频免费观看在线| 欧美大片一区二区三区| 国产亚洲欧美日韩在线一区| 国产欧美日韩另类一区| 亚洲日本一区二区三区| 性感美女极品91精品| 免费高清在线一区| 国产成人精品一区二区三区四区 | 成人禁用看黄a在线| 9i看片成人免费高清| 欧美日本国产视频| 欧美精品一区二区三区蜜臀| 国产精品久久毛片a| 亚洲国产毛片aaaaa无费看| 麻豆一区二区在线| 91在线精品一区二区| 69堂精品视频| 国产欧美中文在线| 午夜激情综合网| 国产不卡高清在线观看视频| 在线欧美小视频| 久久久www成人免费无遮挡大片| 亚洲色图欧洲色图婷婷| 老司机免费视频一区二区三区| 99在线精品免费| 日韩女优av电影| 亚洲五码中文字幕| 国产91对白在线观看九色| 欧美人与禽zozo性伦| 国产精品网站导航| 免费成人你懂的| 在线观看不卡视频| 国产午夜精品久久久久久免费视 | 国产喂奶挤奶一区二区三区| 一区二区三区四区av| 国产精品一线二线三线精华| 在线观看三级视频欧美| 国产欧美日本一区视频| 蜜桃精品在线观看| 欧美日韩国产另类不卡| 综合久久一区二区三区| 国产精品中文字幕欧美| 制服丝袜在线91| 一个色综合av| 成人午夜免费视频| 久久久99精品免费观看不卡| 天堂av在线一区| 欧美亚洲免费在线一区| 亚洲品质自拍视频网站| 粉嫩绯色av一区二区在线观看| 日韩精品一区二区三区老鸭窝| 亚洲综合丝袜美腿| 91一区二区在线观看| 国产精品美女一区二区| 国产99久久精品| 久久精品欧美日韩| 狠狠狠色丁香婷婷综合激情| 91精品国产综合久久久蜜臀图片 | 欧美国产一区在线| 黄一区二区三区| 欧美精品一区二区三| 狠狠色丁香久久婷婷综合丁香| 欧美一级生活片| 日韩精品免费视频人成| 欧美一二三四区在线| 日本不卡高清视频| 日韩欧美成人一区| 激情综合网av|