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

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

?? os_cpu_a.asm

?? KEIL平臺(tái)下,LPC23XX官方的UCOSii的移植文件,包含各種功能的測(cè)試程序.
?? ASM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
;********************************************************************************************************
;                                UNDEFINED INSTRUCTION EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptUndefInstrHndlr
                                                                ; LR offset to return from this exception:  0.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_UNDEF_INSTR                  ; Set exception ID to OS_CPU_ARM_EXCEPT_UNDEF_INSTR.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                                 SOFTWARE INTERRUPT EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptSwiHndlr
                                                                ; LR offset to return from this exception:  0.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_SWI                          ; Set exception ID to OS_CPU_ARM_EXCEPT_SWI.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                                   PREFETCH ABORT EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptPrefetchAbortHndlr
    SUB     LR, LR, #4                                          ; LR offset to return from this exception: -4.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_PREFETCH_ABORT               ; Set exception ID to OS_CPU_ARM_EXCEPT_PREFETCH_ABORT.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                                     DATA ABORT EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptDataAbortHndlr
    SUB     LR, LR, #8                                          ; LR offset to return from this exception: -8.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_DATA_ABORT                   ; Set exception ID to OS_CPU_ARM_EXCEPT_DATA_ABORT.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                                    ADDRESS ABORT EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptAddrAbortHndlr
    SUB     LR, LR, #8                                          ; LR offset to return from this exception: -8.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_ADDR_ABORT                   ; Set exception ID to OS_CPU_ARM_EXCEPT_ADDR_ABORT.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                                  INTERRUPT REQUEST EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptIrqHndlr
    SUB     LR, LR, #4                                          ; LR offset to return from this exception: -4.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_IRQ                          ; Set exception ID to OS_CPU_ARM_EXCEPT_IRQ.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                               FAST INTERRUPT REQUEST EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptFiqHndlr
    SUB     LR, LR, #4                                          ; LR offset to return from this exception: -4.
    STMFD   SP!, {R0-R12, LR}                                   ; Push working registers.
    MOV     R3, LR                                              ; Save link register.
    MOV     R0, #OS_CPU_ARM_EXCEPT_FIQ                          ; Set exception ID to OS_CPU_ARM_EXCEPT_FIQ.
    B            OS_CPU_ARM_ExceptHndlr                         ; Branch to global exception handler.


;********************************************************************************************************
;                                       GLOBAL EXCEPTION HANDLER
;
; Register Usage:  R0     Exception Type
;                  R1	  Exception's SPSR
;                  R2     Old CPU mode
;                  R3     Return PC
;********************************************************************************************************

OS_CPU_ARM_ExceptHndlr
    MRS     R1, SPSR                                            ; Save CPSR (i.e. exception's SPSR).

                                                                ; DETERMINE IF WE INTERRUPTED A TASK OR ANOTHER LOWER PRIORITY EXCEPTION:
                                                                ;   SPSR.Mode = SVC                :  task,
                                                                ;   SPSR.Mode = FIQ, IRQ, ABT, UND :  other exceptions,
                                                                ;   SPSR.Mode = USR                : *unsupported state*.
    AND     R2, R1, #OS_CPU_ARM_MODE_MASK
    CMP     R2,     #OS_CPU_ARM_MODE_SVC
    BNE     OS_CPU_ARM_ExceptHndlr_BreakExcept


;********************************************************************************************************
;                                  EXCEPTION HANDLER: TASK INTERRUPTED
;
; Register Usage:  R0     Exception Type
;                  R1	  Exception's SPSR
;                  R2	  Exception's CPSR
;                  R3     Return PC
;                  R4     Exception's SP
;********************************************************************************************************

OS_CPU_ARM_ExceptHndlr_BreakTask
    MRS     R2, CPSR                                            ; Save exception's CPSR.
    MOV     R4, SP                                              ; Save exception's stack pointer.

                                                                ; Change to SVC mode & disable interruptions.
    MSR     CPSR_c, #(OS_CPU_ARM_CONTROL_INT_DIS | OS_CPU_ARM_MODE_SVC)

                                                                ; SAVE TASK'S CONTEXT ONTO TASK'S STACK:
    STMFD   SP!, {R3}                                           ;   Push task's PC,
    STMFD   SP!, {LR}                                           ;   Push task's LR,
    STMFD   SP!, {R5-R12}                                       ;   Push task's R12-R5,
    LDMFD   R4!, {R5-R9}                                        ;   Move task's R4-R0 from exception stack to task's stack.
    STMFD   SP!, {R5-R9}
    STMFD   SP!, {R1}                                           ;   Push task's CPSR (i.e. exception SPSR).

                                                                ; if (OSRunning == 1)
    LDR     R1, ?OS_Running
    LDRB    R1, [R1]
    CMP     R1, #1
    BNE     OS_CPU_ARM_ExceptHndlr_BreakTask_1

                                                                ; HANDLE NESTING COUNTER:
    LDR     R3, ?OS_IntNesting                                  ;   OSIntNesting++;
    LDRB    R4, [R3]
    ADD     R4, R4, #1
    STRB    R4, [R3]

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

OS_CPU_ARM_ExceptHndlr_BreakTask_1
    MSR     CPSR_cxsf, R2                                       ; RESTORE INTERRUPTED MODE.

                                                                ; EXECUTE EXCEPTION HANDLER:
    LDR     R1, ?OS_CPU_ExceptHndlr                             ; OS_CPU_ExceptHndlr(except_type = R0);
    MOV     LR, PC
    BX      R1

                                                                ; Adjust exception stack pointer.  This is needed because
                                                                ; exception stack is not used when restoring task context.
    ADD     SP, SP, #(14 * 4)

                                                                ; Change to SVC mode & disable interruptions.
    MSR     CPSR_c, #(OS_CPU_ARM_CONTROL_INT_DIS | OS_CPU_ARM_MODE_SVC)

                                                                ; Call OSIntExit().  This call MAY never return if a ready
                                                                ;  task with higher priority than the interrupted one is
                                                                ;  found.
    LDR     R0, ?OS_IntExit
    MOV     LR, PC
    BX      R0

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

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


;********************************************************************************************************
;                               EXCEPTION HANDLER: EXCEPTION INTERRUPTED
;
; Register Usage:  R0     Exception Type
;                  R1
;                  R2
;                  R3
;********************************************************************************************************

OS_CPU_ARM_ExceptHndlr_BreakExcept
    MRS     R2, CPSR                                            ; Save exception's CPSR.

                                                                ; Change to SVC mode & disable interruptions.
    MSR     CPSR_c, #(OS_CPU_ARM_CONTROL_INT_DIS | OS_CPU_ARM_MODE_SVC)

                                                                ; HANDLE NESTING COUNTER:
    LDR     R3, ?OS_IntNesting                                  ;   OSIntNesting++;
    LDRB    R4, [R3]
    ADD     R4, R4, #1
    STRB    R4, [R3]

    MSR     CPSR_cxsf, R2                                       ; RESTORE INTERRUPTED MODE.

                                                                ; EXECUTE EXCEPTION HANDLER:
    LDR     R3, ?OS_CPU_ExceptHndlr                             ; OS_CPU_ExceptHndlr(except_type = R0);
    MOV     LR, PC
    BX      R3

                                                                ; Change to SVC mode & disable interruptions.
    MSR     CPSR_c, #(OS_CPU_ARM_CONTROL_INT_DIS | OS_CPU_ARM_MODE_SVC)

                                                                ; HANDLE NESTING COUNTER:
    LDR     R3, ?OS_IntNesting                                  ;   OSIntNesting--;
    LDRB    R4, [R3]
    SUB     R4, R4, #1
    STRB    R4, [R3]

    MSR     CPSR_cxsf, R2                                       ; RESTORE INTERRUPTED MODE.

                                                                ; RESTORE OLD CONTEXT:
    LDMFD   SP!, {R0-R12, PC}^                                  ; Pull working registers and return from exception.

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

    DATA

?OS_Running:
    DC32    OSRunning

?OS_PrioCur:
    DC32    OSPrioCur

?OS_PrioHighRdy:
    DC32    OSPrioHighRdy

?OS_TCBCur:
    DC32    OSTCBCur

?OS_TCBHighRdy:
    DC32    OSTCBHighRdy

?OS_IntNesting:
    DC32    OSIntNesting

?OS_TaskSwHook:
    DC32    OSTaskSwHook

?OS_IntExit:
    DC32    OSIntExit

?OS_CPU_ExceptHndlr:
    DC32    OS_CPU_ExceptHndlr


    END

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产精品厨房| 亚洲综合成人在线| 一色桃子久久精品亚洲| 亚洲电影一区二区三区| 国产一区二区中文字幕| 欧美无砖砖区免费| 国产精品网站在线| 免费成人在线网站| 欧洲一区二区三区在线| 国产欧美精品日韩区二区麻豆天美| 亚洲一区二区欧美| 99久久免费精品高清特色大片| 欧美一区午夜视频在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲日本乱码在线观看| 美女网站色91| 欧美婷婷六月丁香综合色| 国产三级久久久| 美女精品自拍一二三四| 欧美精品久久一区| 一区二区三区免费网站| 国产成人a级片| 欧美欧美午夜aⅴ在线观看| 亚洲同性gay激情无套| 国产精品99久| 欧美精品一区二区三| 男男成人高潮片免费网站| 在线精品视频免费播放| 中文字幕一区在线| 国产99久久久国产精品免费看| 精品欧美乱码久久久久久1区2区| 午夜不卡在线视频| 精品视频1区2区| 性感美女久久精品| 欧美巨大另类极品videosbest | 日韩免费看的电影| 亚洲成精国产精品女| 色综合久久66| 亚洲久草在线视频| 一本一道综合狠狠老| 亚洲三级电影网站| 在线免费不卡视频| 亚洲综合在线视频| 99久久综合99久久综合网站| 中文幕一区二区三区久久蜜桃| 国产成a人亚洲精| 亚洲国产精品二十页| www.66久久| 亚洲综合免费观看高清完整版 | 日韩久久久久久| 日韩高清中文字幕一区| 欧美精品v日韩精品v韩国精品v| 午夜国产精品一区| 欧美一区二区三区视频在线观看| 奇米一区二区三区av| 精品国产乱码久久| 成人午夜电影久久影院| 亚洲欧美日韩国产一区二区三区| 在线观看欧美精品| 另类人妖一区二区av| 中文字幕二三区不卡| 在线观看成人小视频| 美女视频免费一区| 国产精品视频免费看| 欧美系列亚洲系列| 久久99国产精品尤物| 国产精品无遮挡| 欧美日韩在线一区二区| 老汉av免费一区二区三区| 日本一区二区三区dvd视频在线 | 激情五月激情综合网| 国产精品女主播av| 欧美日韩视频一区二区| 国模无码大尺度一区二区三区| 国产精品天干天干在线综合| 在线观看免费一区| 国产做a爰片久久毛片| 亚洲欧美电影院| 日韩一级视频免费观看在线| 国产91对白在线观看九色| 亚洲sss视频在线视频| 国产日韩欧美制服另类| 在线观看91av| 成人精品免费看| 午夜精品一区在线观看| 国产日韩精品一区二区三区在线| 欧美亚洲一区二区在线观看| 九九**精品视频免费播放| 亚洲情趣在线观看| 精品卡一卡二卡三卡四在线| 欧美在线制服丝袜| 成人午夜碰碰视频| 麻豆成人免费电影| 亚洲午夜激情av| 一区在线中文字幕| 国产三级欧美三级日产三级99 | 亚洲乱码中文字幕综合| 日韩一级视频免费观看在线| 色综合天天在线| 国产米奇在线777精品观看| 丝袜美腿成人在线| 中文幕一区二区三区久久蜜桃| 日韩欧美国产高清| 欧美精品v国产精品v日韩精品 | 成人伦理片在线| 国产在线精品国自产拍免费| 一区二区三区国产精品| 国产精品视频在线看| 国产欧美日韩麻豆91| 日韩一区二区电影在线| 91精品国产手机| 欧美久久久一区| 欧美一区二区视频在线观看| 欧美日韩在线三区| 欧美欧美午夜aⅴ在线观看| 欧美日韩国产美女| 在线播放91灌醉迷j高跟美女| 91成人免费在线| 欧美丝袜丝nylons| 欧美性色黄大片| 欧美日本韩国一区二区三区视频| 欧美在线|欧美| 欧美日韩国产一级片| 欧美日韩三级一区| 91精品国产综合久久精品性色| 欧美亚洲自拍偷拍| 日韩一区二区免费高清| 精品国产精品一区二区夜夜嗨| 精品国内二区三区| 国产色婷婷亚洲99精品小说| 国产精品久久久久久久久果冻传媒 | 日本一区二区三区四区| 中文字幕一区二区三区在线观看 | av一区二区三区| 一本一本久久a久久精品综合麻豆| 91成人在线精品| 欧美巨大另类极品videosbest | 99久久综合99久久综合网站| 91农村精品一区二区在线| 色综合久久久久网| 欧美久久久影院| 精品国产百合女同互慰| 欧美国产在线观看| 夜色激情一区二区| 毛片av中文字幕一区二区| 国精产品一区一区三区mba视频| 国产成人精品亚洲日本在线桃色| 成人高清伦理免费影院在线观看| 色中色一区二区| 91精品国产综合久久久蜜臀粉嫩| www国产亚洲精品久久麻豆| 国产精品国产三级国产| 天堂久久久久va久久久久| 国产在线精品一区二区| 在线观看欧美黄色| 久久你懂得1024| 亚洲一区免费在线观看| 狠狠色2019综合网| 在线观看av一区| 久久久久亚洲综合| 亚洲午夜精品在线| 国产大陆a不卡| 欧美体内she精高潮| 国产亚洲精品aa午夜观看| 亚洲成人动漫在线免费观看| 国产伦精品一区二区三区免费迷| 在线精品视频免费观看| 蜜臀av在线播放一区二区三区| 国产99久久久久| 欧美精品乱码久久久久久| 国产精品久久久久影院亚瑟 | 亚洲欧洲在线观看av| 奇米综合一区二区三区精品视频| 99国产精品99久久久久久| www国产成人免费观看视频 深夜成人网 | 亚洲一区二区美女| 成人av网址在线观看| 欧美成人精精品一区二区频| 亚洲一二三四在线| 99re亚洲国产精品| 国产亚洲精久久久久久| 免费高清在线视频一区·| 欧美三片在线视频观看| 亚洲人成网站在线| 成人中文字幕电影| 26uuu久久综合| 久久99国产精品久久99 | 香蕉加勒比综合久久| 99精品一区二区| 国产欧美日韩精品一区| 国产在线精品一区二区| 日韩欧美一级精品久久| 五月综合激情日本mⅴ| 欧美亚洲综合色| 亚洲国产日韩a在线播放性色| 99精品欧美一区二区蜜桃免费 | 粉嫩av一区二区三区在线播放 | 自拍偷拍亚洲综合| 精品三级在线看| 蜜桃视频在线观看一区二区|