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

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

?? os_cpu_a.asm

?? protues仿真ARM ARM的I2C
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;              c) OSTCBCur              = OSTCBHighRdy;
;              d) SP                    = OSTCBHighRdy->OSTCBStkPtr;
;              e) Restore the new task's context from the new task's stack
;              f) Return to new task's code
;
;           3) Upon entry: 
;              OSTCBCur      points to the OS_TCB of the task to suspend
;              OSTCBHighRdy  points to the OS_TCB of the task to resume
;*********************************************************************************************************

        RSEG CODE:CODE:NOROOT(2)
        CODE32

OSIntCtxSw
        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!, {R1-R3}                   ; PUSH WORKING REGISTERS ONTO IRQ STACK                     
        
        MOV     R1, SP                         ; Save   IRQ stack pointer
        
        ADD     SP, SP,#12                     ; Adjust IRQ 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 IRQ 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. IRQ'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_IRQ_ISR_1

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

OS_CPU_IRQ_ISR_1
        MSR     CPSR_c, #(NO_INT | IRQ32_MODE) ; Change to IRQ mode (to use the IRQ stack to handle interrupt)
        
        LDR     R0, ??OS_CPU_IRQ_ISR_Handler   ; OS_CPU_IRQ_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


;*********************************************************************************************************
;                                      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    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

        END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品久久久久影院色| 欧美一区二区三区免费视频| 在线观看亚洲成人| 精品国产乱码久久久久久浪潮 | 日韩欧美高清一区| 亚洲色图色小说| 国产精品一区一区三区| 欧美年轻男男videosbes| 最近日韩中文字幕| 国产乱码精品一区二区三区五月婷| 91女神在线视频| 亚洲国产岛国毛片在线| 久久国产夜色精品鲁鲁99| 欧美熟乱第一页| 一区二区三区中文字幕电影| 成人app网站| 国产午夜三级一区二区三| 免费在线一区观看| 91精品国产综合久久福利 | 国精产品一区一区三区mba桃花 | 精品区一区二区| 亚洲成a人在线观看| 91久久免费观看| 欧美极品另类videosde| 精品一区二区三区在线观看| 日韩一区二区免费在线观看| 免费成人av资源网| 欧美另类z0zxhd电影| 亚洲一区二区3| 欧美色电影在线| 亚洲高清在线视频| 在线成人小视频| 日日夜夜精品视频免费| 欧美一区二区三区在线观看视频| 亚洲1区2区3区视频| 欧美高清性hdvideosex| 日韩国产成人精品| 日韩美女在线视频| 懂色av一区二区三区免费看| 中文字幕av一区二区三区高| 成人国产在线观看| 亚洲啪啪综合av一区二区三区| 91亚洲精品一区二区乱码| 亚洲欧美日韩国产手机在线| 一本色道久久加勒比精品| 亚洲精品ww久久久久久p站| 色综合激情五月| 日韩专区一卡二卡| 精品国产乱码久久久久久老虎 | 国产精品欧美精品| 91丝袜高跟美女视频| 亚洲午夜久久久| 欧美videossexotv100| 韩国一区二区在线观看| 中文一区二区在线观看| 91精品福利在线| 天天色综合天天| 久久久久免费观看| 色香蕉久久蜜桃| 青青草91视频| 亚洲欧美综合另类在线卡通| 欧美亚洲一区二区三区四区| 免费看日韩精品| 中文字幕精品三区| 91精品国模一区二区三区| 国产一区二区三区四| 亚洲另类一区二区| 精品日韩av一区二区| 91免费视频观看| 久久se精品一区二区| 亚洲色图视频免费播放| 欧美一区二区三区四区久久| 豆国产96在线|亚洲| 五月婷婷欧美视频| 欧美激情艳妇裸体舞| 91麻豆精品国产自产在线观看一区| 国产精品 欧美精品| 亚洲高清久久久| 国产精品午夜免费| 日韩欧美资源站| 欧美亚洲愉拍一区二区| 成人污视频在线观看| 日韩高清不卡在线| 国产精品盗摄一区二区三区| 日韩一级黄色大片| 欧美丝袜丝交足nylons图片| 大尺度一区二区| 国产一区二区三区香蕉| 视频一区在线播放| 一区二区三区免费网站| 国产午夜亚洲精品午夜鲁丝片| 欧美色视频在线| 97se亚洲国产综合自在线不卡 | 久久精品99国产精品| 亚洲综合精品自拍| 中文字幕中文字幕中文字幕亚洲无线| 欧美一级生活片| 欧美日韩黄色一区二区| 色一情一伦一子一伦一区| 成人性生交大片免费看中文网站 | 亚洲动漫第一页| 亚洲综合另类小说| 一区二区三区欧美日| 亚洲免费观看高清完整版在线| 国产精品免费网站在线观看| 久久精品视频一区| 久久欧美一区二区| 久久女同性恋中文字幕| 久久免费电影网| 国产亚洲欧美日韩俺去了| 亚洲精品一区二区三区蜜桃下载 | 国产麻豆成人传媒免费观看| 久久国产综合精品| 国产伦精品一区二区三区免费| 美女在线视频一区| 久久99精品一区二区三区三区| 免费看日韩精品| 韩国女主播成人在线观看| 国内成人自拍视频| 国产成人自拍网| aa级大片欧美| 色老汉一区二区三区| 欧美日韩精品高清| 日韩欧美的一区二区| 337p日本欧洲亚洲大胆精品| 久久久久久久久久久久久久久99| 国产欧美日本一区视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 免费精品视频在线| 韩国毛片一区二区三区| 成人av资源下载| 欧美三级在线播放| 日韩精品资源二区在线| 国产欧美一区二区三区网站| 亚洲欧洲制服丝袜| 青青草国产成人av片免费 | 秋霞av亚洲一区二区三| 麻豆国产91在线播放| 国产·精品毛片| 欧美在线观看一二区| 日韩一区二区三区在线观看| 久久一区二区视频| 亚洲精品视频一区| 麻豆精品一二三| 成人在线视频首页| 欧美在线一区二区| 欧美精品一区二区久久婷婷| 国产精品福利影院| 奇米精品一区二区三区在线观看一| 国产一区二区三区电影在线观看| www.亚洲激情.com| 日韩一级精品视频在线观看| 国产精品久久久久久久久久久免费看 | 5566中文字幕一区二区电影| 久久综合国产精品| 一区二区国产盗摄色噜噜| 狠狠色丁香久久婷婷综合_中 | 成人中文字幕合集| 欧美精选在线播放| 日韩一区欧美一区| 秋霞午夜av一区二区三区 | 北条麻妃一区二区三区| 欧美另类一区二区三区| 欧美激情在线看| 日本不卡一区二区三区| 菠萝蜜视频在线观看一区| 日韩欧美在线1卡| 一区二区三区欧美久久| 丁香另类激情小说| 日韩三级在线免费观看| 亚洲乱码一区二区三区在线观看| 韩国女主播一区二区三区| 欧美日韩精品免费观看视频 | 日韩成人免费电影| 91免费在线看| 国产精品久久久久久久久久免费看 | 成人黄色免费短视频| 日韩手机在线导航| 亚洲成人av资源| 日本丶国产丶欧美色综合| 国产精品视频九色porn| 国产精品亚洲一区二区三区在线| 欧美一区二区在线免费观看| 亚洲一区在线看| 欧美在线不卡视频| 亚洲黄色av一区| 91在线丨porny丨国产| 国产精品丝袜91| 成人自拍视频在线| 国产精品视频你懂的| 成熟亚洲日本毛茸茸凸凹| 国产午夜亚洲精品不卡| 国产a级毛片一区| 久久久综合精品| 国产美女一区二区| 久久综合狠狠综合久久综合88| 激情图片小说一区| 精品国产成人在线影院| 久久se精品一区二区| wwwwww.欧美系列|