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

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

?? context_rvc.s

?? RT-Thread是發展中的下一代微內核嵌入式實時操作系統
?? S
字號:
;/*
; * File      : context.S
; * This file is part of RT-Thread RTOS
; * COPYRIGHT (C) 2006, RT-Thread Development Team
; *
; * The license and distribution terms for this file may be
; * found in the file LICENSE in this distribution or at
; * http://www.rt-thread.org/license/LICENSE
; *
; * Change Logs:
; * Date           Author       Notes
; * 2009-01-17     Bernard      first version
; */

;/**
; * @addtogroup STM32
; */
;/*@{*/

NVIC_INT_CTRL   EQU     0xE000ED04               ; interrupt control state register
NVIC_SYSPRI2    EQU     0xE000ED20               ; system priority register (2)
NVIC_PENDSV_PRI EQU     0x00000000               ; PendSV priority value (lowest)
NVIC_PENDSVSET  EQU     0x10000000               ; value to trigger PendSV exception

	AREA |.text|, CODE, READONLY, ALIGN=2
	THUMB
	REQUIRE8
	PRESERVE8

	IMPORT rt_thread_switch_interrput_flag
	IMPORT rt_interrupt_from_thread
	IMPORT rt_interrupt_to_thread

;/*
; * rt_base_t rt_hw_interrupt_disable();
; */
rt_hw_interrupt_disable    PROC
	EXPORT  rt_hw_interrupt_disable
	MRS		r0, PRIMASK
	CPSID   I
	BX		LR
	ENDP

;/*
; * void rt_hw_interrupt_enable(rt_base_t level);
; */
rt_hw_interrupt_enable    PROC
	EXPORT  rt_hw_interrupt_enable
	MSR		PRIMASK, r0
	BX      LR
	ENDP

;/*
; * void rt_hw_context_switch(rt_uint32 from, rt_uint32 to);
; * r0 --> from
; * r1 --> to
; */
rt_hw_context_switch    PROC
	EXPORT rt_hw_context_switch
	LDR		r2, =rt_interrupt_from_thread
	STR		r0, [r2]
	
	LDR		r2, =rt_interrupt_to_thread
	STR		r1, [r2]

    LDR     r0, =NVIC_INT_CTRL      ; trigger the PendSV exception (causes context switch)
    LDR     r1, =NVIC_PENDSVSET
	STR     r1, [r0]
	CPSIE   I                       ; enable interrupts at processor level
	BX      LR
	ENDP

; r0 --> swith from thread stack
; r1 --> swith to thread stack
; psr, pc, lr, r12, r3, r2, r1, r0 are pushed into [from] stack
rt_hw_pend_sv	PROC
	EXPORT rt_hw_pend_sv
	LDR		r0, =rt_interrupt_from_thread
	LDR		r1, [r0]
	CBZ		r1, swtich_to_thread    ; skip register save at the first time

	MRS     r1, psp                 ; get from thread stack pointer
	STMFD	r1!, {r4 - r11}			; push r4 - r11 register
	LDR		r0, [r0]
	STR		r1, [r0]				; update from thread stack pointer

swtich_to_thread
	LDR		r1, =rt_interrupt_to_thread
	LDR		r1, [r1]
	LDR		r1, [r1]				; load thread stack pointer 

	LDMFD	r1!, {r4 - r11}			; pop r4 - r11 register
	MSR		psp, r1					; update stack pointer

	ORR     lr, lr, #0x04
	BX		lr
	ENDP

;/*
; * void rt_hw_context_switch_to(rt_uint32 to);
; * r0 --> to
; */
rt_hw_context_switch_to    PROC
	EXPORT rt_hw_context_switch_to
	; set to thread
	; LDR		r0, [r0]
	LDR		r1, =rt_interrupt_to_thread
	STR		r0, [r1]

	; set from thread to 0
	LDR		r1, =rt_interrupt_from_thread
	MOV		r0, #0x0
	STR		r0, [r1]

	; set the PendSV exception priority
    LDR     r0, =NVIC_SYSPRI2
    LDR     r1, =NVIC_PENDSV_PRI
    STR     r1, [r0]

    LDR     r0, =NVIC_INT_CTRL      ; trigger the PendSV exception (causes context switch)
    LDR     r1, =NVIC_PENDSVSET
    STR     r1, [r0]

    CPSIE   I                       ; enable interrupts at processor level
	
	; never reach here!
	ENDP

;/*
; * void rt_hw_context_switch_interrupt(rt_uint32 from, rt_uint32 to)
; * {
; *		if (rt_thread_switch_interrput_flag == 1)
; * 	{
; *			rt_interrupt_to_thread = to;
; * 	}
; * 	else
; * 	{
; *			rt_thread_switch_interrput_flag = 1;
; * 		rt_interrupt_from_thread = from;
; * 		rt_interrupt_to_thread = to;
; * 	}
; * }
; */
rt_hw_context_switch_interrupt    PROC
	EXPORT rt_hw_context_switch_interrupt
	LDR 	r2, =rt_thread_switch_interrput_flag
	LDR 	r3, [r2]
	CMP 	r3, #1
	BEQ 	_reswitch
	MOV 	r3, #1							; set rt_thread_switch_interrput_flag to 1
	STR 	r3, [r2]
	LDR 	r2, =rt_interrupt_from_thread	; set rt_interrupt_from_thread
	STR 	r0, [r2]
_reswitch
	LDR 	r2, =rt_interrupt_to_thread		; set rt_interrupt_to_thread
	STR 	r1, [r2]
	BX		lr
	ENDP

rt_hw_interrupt_thread_switch	PROC
	EXPORT rt_hw_interrupt_thread_switch
	LDR		r0, =rt_thread_switch_interrput_flag
	LDR		r1, [r0]
	CBZ		r1, _no_switch

	; clear rt_thread_switch_interrput_flag to 0
	MOV		r1, #0x00
	STR		r1, [r0]

	; trigger context switch
    LDR     r0, =NVIC_INT_CTRL      ; trigger the PendSV exception (causes context switch)
    LDR     r1, =NVIC_PENDSVSET
    STR     r1, [r0]

_no_switch
	BX		lr

	ENDP

	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利不卡视频| 91福利精品视频| 97精品视频在线观看自产线路二| 欧美日韩美少妇| 国产精品麻豆视频| 免费的国产精品| 色国产综合视频| 久久亚洲精品国产精品紫薇| 亚洲成人福利片| jiyouzz国产精品久久| 精品国产一区二区三区av性色| 亚洲精品视频在线观看网站| 国产一区在线视频| 91精品国产乱码| 亚洲综合视频网| av午夜一区麻豆| 国产欧美一区视频| 另类欧美日韩国产在线| 欧美日韩国产一级| 樱花影视一区二区| 色香蕉久久蜜桃| 国产精品久久久久影院老司| 国产真实乱子伦精品视频| 欧美日韩电影一区| 亚洲国产综合色| 日本精品视频一区二区| 国产精品久久精品日日| 国模冰冰炮一区二区| 欧美一区二区三区视频在线 | 国产乱码精品一区二区三区av| 欧亚洲嫩模精品一区三区| 中文字幕亚洲视频| 成人午夜电影网站| 欧美国产综合色视频| 国产乱淫av一区二区三区| 日韩欧美三级在线| 午夜激情一区二区三区| 在线国产亚洲欧美| 一个色妞综合视频在线观看| 色综合天天天天做夜夜夜夜做| 国产精品女上位| 菠萝蜜视频在线观看一区| 国产精品美女视频| 91丨九色丨蝌蚪丨老版| 一区二区三区资源| 欧美色欧美亚洲另类二区| 亚洲欧美日韩综合aⅴ视频| 91丨九色丨黑人外教| 亚洲一二三四久久| 欧美另类久久久品| 美国十次综合导航| 国产日本一区二区| 91网站视频在线观看| 亚洲国产sm捆绑调教视频 | 大白屁股一区二区视频| 国产精品久久综合| 在线免费观看日本欧美| 天天色图综合网| 久久久不卡网国产精品二区| 成人免费毛片a| 亚洲大片免费看| 日韩一级视频免费观看在线| 国产成人精品一区二区三区四区| 中文字幕一区免费在线观看| 91福利视频久久久久| 精品午夜久久福利影院 | 国产美女视频一区| 亚洲欧洲日韩av| 91精品久久久久久蜜臀| 丁香激情综合五月| 亚洲va韩国va欧美va| 久久精品男人的天堂| 91在线观看地址| 麻豆精品国产传媒mv男同| 国产精品成人在线观看| 欧美一区二区三级| 91网站视频在线观看| 久久成人18免费观看| 亚洲精选一二三| 精品少妇一区二区三区免费观看| 91老司机福利 在线| 激情五月播播久久久精品| 亚洲情趣在线观看| 欧美成人国产一区二区| 91精品福利视频| 国产精品99久久久久久宅男| 亚洲成人午夜影院| 中文字幕中文在线不卡住| 欧美挠脚心视频网站| 91麻豆精东视频| 精东粉嫩av免费一区二区三区| 亚洲综合免费观看高清在线观看| 久久九九久久九九| 欧美一区二区久久| 欧美三级韩国三级日本一级| 成av人片一区二区| 国产老妇另类xxxxx| 美腿丝袜亚洲色图| 性感美女极品91精品| 亚洲精品亚洲人成人网| 国产精品无人区| 久久久综合网站| 欧美一区二区视频在线观看2020 | 亚洲日本丝袜连裤袜办公室| 久久久综合九色合综国产精品| 91麻豆精品91久久久久久清纯| 欧洲精品中文字幕| fc2成人免费人成在线观看播放| 国产一区二区三区久久悠悠色av| 日韩—二三区免费观看av| 亚洲色图色小说| 中文字幕二三区不卡| 国产性色一区二区| 国产农村妇女毛片精品久久麻豆| 精品国产乱码久久久久久夜甘婷婷| 91精品欧美久久久久久动漫| 777xxx欧美| 日韩一区二区免费在线电影| 欧美一区二区三区在线观看视频| 欧美日本在线一区| 欧美视频中文字幕| 欧美日韩一区二区三区在线看 | 欧美男女性生活在线直播观看| 欧美在线一二三| 欧美日韩黄色影视| 337p亚洲精品色噜噜狠狠| 8v天堂国产在线一区二区| 欧美一区三区二区| 精品国产精品网麻豆系列 | 91精品国产91久久综合桃花| 欧美一区二区美女| 精品三级av在线| 国产日韩欧美一区二区三区乱码 | 欧美性一级生活| 欧美日韩国产大片| 精品国产成人在线影院| 中文av字幕一区| 一区二区三区四区不卡在线| 视频在线观看一区| 极品少妇一区二区三区精品视频| 国产v日产∨综合v精品视频| 99精品一区二区| 欧美三级日韩三级国产三级| 日韩欧美国产不卡| 国产欧美精品一区二区三区四区 | 免费在线视频一区| 国产成人亚洲综合a∨猫咪| av欧美精品.com| 制服丝袜中文字幕一区| 久久久久久久久久看片| 亚洲人快播电影网| 日韩国产在线观看| 成人自拍视频在线| 欧美精品国产精品| 国产欧美日韩另类一区| 午夜精品久久久久久久99水蜜桃 | 精品1区2区在线观看| 国产精品乱码一区二三区小蝌蚪| 亚洲成人综合网站| 国产一区在线视频| 91久久免费观看| 久久久久久亚洲综合影院红桃 | 国产精品视频在线看| 亚洲成人免费av| 成人久久18免费网站麻豆 | 一本久久精品一区二区| 日韩一级片在线观看| 亚洲欧洲精品一区二区三区 | 综合激情成人伊人| 日精品一区二区| 91免费版在线看| 久久网站热最新地址| 丝袜亚洲另类欧美综合| 99久精品国产| 日本一区二区视频在线| 三级欧美韩日大片在线看| 91蜜桃免费观看视频| 久久久久久一二三区| 蜜臀av亚洲一区中文字幕| 欧美亚洲精品一区| 国产精品欧美一级免费| 韩日精品视频一区| 欧美久久久久免费| 亚洲综合成人网| 91亚洲精品乱码久久久久久蜜桃| 亚洲精品一区二区三区四区高清| 亚洲第一成人在线| 在线精品视频免费观看| 亚洲视频图片小说| 高清beeg欧美| 欧美国产一区视频在线观看| 精彩视频一区二区三区| 日韩精品最新网址| 奇米影视一区二区三区小说| 欧美男人的天堂一二区| 亚洲一区二区三区四区在线| 色噜噜久久综合| 亚洲猫色日本管| 色国产综合视频| 亚洲1区2区3区视频|