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

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

?? ucosppca.s

?? ppc860平臺上移植uc OS的實例
?? S
字號:
#########################################################################
#
#                        UCOSPPCA.ASM
#                Power PC Real Time Operating System
#
#########################################################################
    .file       "ucosppca.asm"

    .text

    .extern OSTCBHighRdy    ;pointer to highest priority ready task
    .extern OSTCBCur    ;pointer to current tasks TCB
    .extern OSIntNesting
    .extern OSSIUInterrupt;  Our Master Interrupt Handler
;
#########################################################################
#
#           MPC860 REGISTER DEFINITIONS
#
#########################################################################
XER              .equ   1       ;integer exception register
LR               .equ   8       ;link register
CTR              .equ   9       ;count register

EE               .equ   0x8000
STACK_ADJUSTMENT .equ   0x18
#########################################################################
#                                   
#           STACK FRAME DEFINITION
#
#########################################################################
XR1     .equ    0
XBLK1   .equ    XR1+4
XR0     .equ    XBLK1+4
XSRR0   .equ    XR0+4
XSRR1   .equ    XSRR0+4
XCTR    .equ    XSRR1+4
XXER    .equ    XCTR+4
XCR     .equ    XXER+4
XLR     .equ    XCR+4
XBLK2   .equ    XLR+4
XR2     .equ    XBLK2+4
XR3     .equ    XR2+4
XR4     .equ    XR3+4
XR5     .equ    XR4+4
XR6     .equ    XR5+4
XR7     .equ    XR6+4
XR8     .equ    XR7+4
XR9     .equ    XR8+4
XR10    .equ    XR9+4
XR11    .equ    XR10+4
XR12    .equ    XR11+4
XR13    .equ    XR12+4
XR14    .equ    XR13+4
XR15    .equ    XR14+4
XR16    .equ    XR15+4
XR17    .equ    XR16+4
XR18    .equ    XR17+4
XR19    .equ    XR18+4
XR20    .equ    XR19+4
XR21    .equ    XR20+4
XR22    .equ    XR21+4
XR23    .equ    XR22+4
XR24    .equ    XR23+4
XR25    .equ    XR24+4
XR26    .equ    XR25+4
XR27    .equ    XR26+4
XR28    .equ    XR27+4
XR29    .equ    XR28+4
XR30    .equ    XR29+4
XR31    .equ    XR30+4
XMSR    .equ    XR31+4
STACK_FRAME_SIZE .equ XMSR+4
CSTACK_SAVE_SIZE .equ 0x50



#########################################################################
#
#           START MULTITASKING              
#                                   
#  void OSStartHighRdy(void)                        
#                                   
#########################################################################
    .align  2
    .globl  OSStartHighRdy
OSStartHighRdy:
;; Clear R0
    xor     r0,r0,r0
;; get pointer to ready task TCB
    addis   r11,r0,OSTCBHighRdy@ha
    lwz r11,OSTCBHighRdy@l(r11)

;; save as current task TCB ptr.
    addis   r12,r0,OSTCBCur@ha
    stw r11,OSTCBCur@l(r12)

;; get new stack pointer
    lwz r1,0(r11)

;; restore registers r2 to r31
    lwz r3,XR3(r1)
    lwz r4,XR4(r1)
    lwz r5,XR5(r1)
    lwz r6,XR6(r1)
    lwz r7,XR7(r1)
    lwz r8,XR8(r1)
    lwz r9,XR9(r1)
    lwz r10,XR10(r1)
    lwz r11,XR11(r1)
    lwz r12,XR12(r1)
    lwz r14,XR14(r1)
    lwz r15,XR15(r1)
    lwz r16,XR16(r1)
    lwz r17,XR17(r1)
    lwz r18,XR18(r1)
    lwz r19,XR19(r1)
    lwz r20,XR20(r1)
    lwz r21,XR21(r1)
    lwz r22,XR22(r1)
    lwz r23,XR23(r1)
    lwz r24,XR24(r1)
    lwz r25,XR25(r1)
    lwz r26,XR26(r1)
    lwz r27,XR27(r1)
    lwz r28,XR28(r1)
    lwz r29,XR29(r1)
    lwz r30,XR30(r1)
    lwz r31,XR31(r1)
    lwz	    r0,XLR(r1)
    mtspr	LR,r0
    lwz	    r0,XCR(r1)
    mtcrf	255,r0
    lwz	    r0,XXER(r1)
    mtspr	XER,r0
    lwz	    r0,XCTR(r1)
    mtspr	CTR,r0
    lwz     r0,XMSR(r1)
    mtspr   SRR1,r0
    lwz     r0,XLR(r1)
    mtspr   SRR0,r0
    lwz	    r0,XR0(r1)
    addi    r1,r1,STACK_FRAME_SIZE
;; Perform task switch
    rfi


#########################################################################
#
#            PERFORM A CONTEXT SWITCH (From task level)
#
#                        void OSCtxSw(void)                         
#                                   
#########################################################################
    .align      2
    .globl      OSCtxSw
OSCtxSw:
;;
;; Save the current registers
    stwu	r1,-STACK_FRAME_SIZE(r1)
    stw	    r0,XR0(r1)
    mfspr	r0,LR
    stw	    r0,XSRR0(r1)
    mfmsr	r0
    stw	    r0,XSRR1(r1)
    mfspr	r0,CTR
    stw	    r0,XCTR(r1)
    mfspr	r0,XER
    stw	    r0,XXER(r1)
    mfcr	r0
    stw	    r0,XCR(r1)
    stw	    r3,XR3(r1)
    stw	    r4,XR4(r1)
    stw	    r5,XR5(r1)
    stw	    r6,XR6(r1)
    stw	    r7,XR7(r1)
    stw	    r8,XR8(r1)
    stw	    r9,XR9(r1)
    stw	    r10,XR10(r1)
    stw	    r11,XR11(r1)
    stw	    r12,XR12(r1)
    stw     r14,XR14(r1)
    stw     r15,XR15(r1)
    stw     r16,XR16(r1)
    stw     r17,XR17(r1)
    stw     r18,XR18(r1)
    stw     r19,XR19(r1)
    stw     r20,XR20(r1)
    stw     r21,XR21(r1)
    stw     r22,XR22(r1)
    stw     r23,XR23(r1)
    stw     r24,XR24(r1)
    stw     r25,XR25(r1)
    stw     r26,XR26(r1)
    stw     r27,XR27(r1)
    stw     r28,XR28(r1)
    stw     r29,XR29(r1)
    stw     r30,XR30(r1)
    stw     r31,XR31(r1)

;; Clear R0
    xor     r0,r0,r0

;; get pointer to current TCB
    addis   r11,r0,OSTCBCur@ha
    lwz r11,OSTCBCur@l(r11)

;; save stack pointer in current TCB
    stw r1,0(r11)

;; get pointer to ready task TCB
    addis   r11,r0,OSTCBHighRdy@ha
    lwz r11,OSTCBHighRdy@l(r11)

;; save as current task TCB ptr.
    addis   r12,r0,OSTCBCur@ha
    stw r11,OSTCBCur@l(r12)

;; get new stack pointer
    lwz r1,0(r11)

;; restore registers r2 to r31
    lwz r3,XR3(r1)
    lwz r4,XR4(r1)
    lwz r5,XR5(r1)
    lwz r6,XR6(r1)
    lwz r7,XR7(r1)
    lwz r8,XR8(r1)
    lwz r9,XR9(r1)
    lwz r10,XR10(r1)
    lwz r11,XR11(r1)
    lwz r12,XR12(r1)
    lwz r14,XR14(r1)
    lwz r15,XR15(r1)
    lwz r16,XR16(r1)
    lwz r17,XR17(r1)
    lwz r18,XR18(r1)
    lwz r19,XR19(r1)
    lwz r20,XR20(r1)
    lwz r21,XR21(r1)
    lwz r22,XR22(r1)
    lwz r23,XR23(r1)
    lwz r24,XR24(r1)
    lwz r25,XR25(r1)
    lwz r26,XR26(r1)
    lwz r27,XR27(r1)
    lwz r28,XR28(r1)
    lwz r29,XR29(r1)
    lwz r30,XR30(r1)
    lwz r31,XR31(r1)
    lwz	    r0,XLR(r1)
    mtspr	LR,r0
    lwz	    r0,XCR(r1)
    mtcrf	255,r0
    lwz	    r0,XXER(r1)
    mtspr	XER,r0
    lwz	    r0,XCTR(r1)
    mtspr	CTR,r0
    lwz     r0,XSRR1(r1)
    mtspr   SRR1,r0
    lwz     r0,XSRR0(r1)
    mtspr   SRR0,r0
    lwz	    r0,XR0(r1)
    addi    r1,r1,STACK_FRAME_SIZE
;; Perform task switch
    rfi

#########################################################################
#
#            PERFORM A CONTEXT SWITCH (From an ISR)
#
#                        void OSIntCtxSw(void)                          
#                                   
#########################################################################
    .align      2
    .globl      OSIntCtxSw
OSIntCtxSw:
;;Ignore calls to OSIntExit,
;;OSIntCtxSw and locals.
    addi    r1,r1,STACK_ADJUSTMENT


;; Clear R0
    xor     r0,r0,r0

;; get pointer to current TCB
    addis   r11,r0,OSTCBCur@ha
    lwz r11,OSTCBCur@l(r11)

;; save stack pointer in current TCB 
    stw r1,0(r11)

;; get pointer to ready task TCB
    addis   r11,r0,OSTCBHighRdy@ha
    lwz r11,OSTCBHighRdy@l(r11)

;; save as current task TCB ptr.
    addis   r12,r0,OSTCBCur@ha
    stw r11,OSTCBCur@l(r12)

;; get new stack pointer
    lwz r1,0(r11)

;; restore registers r2 to r31
    lwz r3,XR3(r1)
    lwz r4,XR4(r1)
    lwz r5,XR5(r1)
    lwz r6,XR6(r1)
    lwz r7,XR7(r1)
    lwz r8,XR8(r1)
    lwz r9,XR9(r1)
    lwz r10,XR10(r1)
    lwz r11,XR11(r1)
    lwz r12,XR12(r1)
    lwz r14,XR14(r1)
    lwz r15,XR15(r1)
    lwz r16,XR16(r1)
    lwz r17,XR17(r1)
    lwz r18,XR18(r1)
    lwz r19,XR19(r1)
    lwz r20,XR20(r1)
    lwz r21,XR21(r1)
    lwz r22,XR22(r1)
    lwz r23,XR23(r1)
    lwz r24,XR24(r1)
    lwz r25,XR25(r1)
    lwz r26,XR26(r1)
    lwz r27,XR27(r1)
    lwz r28,XR28(r1)
    lwz r29,XR29(r1)
    lwz r30,XR30(r1)
    lwz r31,XR31(r1)
    lwz	    r0,XLR(r1)
    mtspr	LR,r0
    lwz	    r0,XCR(r1)
    mtcrf	255,r0
    lwz	    r0,XXER(r1)
    mtspr	XER,r0
    lwz	    r0,XCTR(r1)
    mtspr	CTR,r0
    lwz     r0,XSRR1(r1)
    mtspr   SRR1,r0
    lwz     r0,XSRR0(r1)
    mtspr   SRR0,r0 
    lwz	    r0,XR0(r1)
    addi    r1,r1,STACK_FRAME_SIZE
;; Perform task switch
    rfi

#########################################################################
#
#            Interrupt Handler Wrapper for SIU Interrupt
#
#            void SIUIntr(void)                          
#                                   
#########################################################################
    .align      2
    .globl      SIUIntr
SIUIntr:
;;
;; Save the current registers
    stwu	r1,-STACK_FRAME_SIZE(r1)
    stw	    r0,XR0(r1)
    mfspr	r0,SRR0
    stw	    r0,XSRR0(r1)
    mfspr	r0,SRR1
    stw	    r0,XSRR1(r1)
    mfspr	r0,CTR
    stw	    r0,XCTR(r1)
    mfspr	r0,XER
    stw	    r0,XXER(r1)
    mfcr	r0
    stw	    r0,XCR(r1)
    mfspr	r0,LR
    stw	    r0,XLR(r1)
    stw	    r3,XR3(r1)
    stw	    r4,XR4(r1)
    stw	    r5,XR5(r1)
    stw	    r6,XR6(r1)
    stw	    r7,XR7(r1)
    stw	    r8,XR8(r1)
    stw	    r9,XR9(r1)
    stw	    r10,XR10(r1)
    stw	    r11,XR11(r1)
    stw	    r12,XR12(r1)
    stw     r14,XR14(r1)
    stw     r15,XR15(r1)
    stw     r16,XR16(r1)
    stw     r17,XR17(r1)
    stw     r18,XR18(r1)
    stw     r19,XR19(r1)
    stw     r20,XR20(r1)
    stw     r21,XR21(r1)
    stw     r22,XR22(r1)
    stw     r23,XR23(r1)
    stw     r24,XR24(r1)
    stw     r25,XR25(r1)
    stw     r26,XR26(r1)
    stw     r27,XR27(r1)
    stw     r28,XR28(r1)
    stw     r29,XR29(r1)
    stw     r30,XR30(r1)
    stw     r31,XR31(r1)
;;
;;  Go ahead and call our "C" function
    bl       OSSIUInterrupt
;;
;;  Restore the registers
    lwz	    r3,XR3(r1)
    lwz	    r4,XR4(r1)
    lwz	    r5,XR5(r1)
    lwz	    r6,XR6(r1)
    lwz	    r7,XR7(r1)
    lwz	    r8,XR8(r1)
    lwz	    r9,XR9(r1)
    lwz	    r10,XR10(r1)
    lwz	    r11,XR11(r1)
    lwz	    r12,XR12(r1)
    lwz     r14,XR14(r1)
    lwz     r15,XR15(r1)
    lwz     r16,XR16(r1)
    lwz     r17,XR17(r1)
    lwz     r18,XR18(r1)
    lwz     r19,XR19(r1)
    lwz     r20,XR20(r1)
    lwz     r21,XR21(r1)
    lwz     r22,XR22(r1)
    lwz     r23,XR23(r1)
    lwz     r24,XR24(r1)
    lwz     r25,XR25(r1)
    lwz     r26,XR26(r1)
    lwz     r27,XR27(r1)
    lwz     r28,XR28(r1)
    lwz     r29,XR29(r1)
    lwz     r30,XR30(r1)
    lwz     r31,XR31(r1)
    lwz	    r0,XLR(r1)
    mtspr	LR,r0
    lwz	    r0,XCR(r1)
    mtcrf	255,r0
    lwz	    r0,XXER(r1)
    mtspr	XER,r0
    lwz	    r0,XCTR(r1)
    mtspr	CTR,r0
    lwz	    r0,XSRR1(r1)
    mtspr	SRR1,r0
    lwz	    r0,XSRR0(r1)
    mtspr	SRR0,r0
    lwz	    r0,XR0(r1)
    addi	r1,r1,STACK_FRAME_SIZE
    rfi

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区美女视频| 亚洲麻豆国产自偷在线| aaa亚洲精品| 午夜视频在线观看一区二区| 久久网这里都是精品| 色久优优欧美色久优优| 国内欧美视频一区二区 | 91福利国产成人精品照片| 久久激情五月激情| 亚洲成av人影院在线观看网| 欧美高清一级片在线观看| 日韩一卡二卡三卡四卡| 欧美主播一区二区三区| 99久久精品免费| 高清国产一区二区三区| 六月婷婷色综合| 亚洲第一激情av| 亚洲欧美区自拍先锋| 国产精品久久久久一区二区三区共 | 欧美欧美欧美欧美| 成人av网站免费观看| 国产在线视视频有精品| 日本人妖一区二区| 亚洲国产一区二区三区| 亚洲欧美在线高清| 久久久不卡影院| 精品国产乱码久久久久久浪潮 | 成人h动漫精品| 国产美女一区二区| 寂寞少妇一区二区三区| 免费高清不卡av| 石原莉奈一区二区三区在线观看| 亚洲男女毛片无遮挡| 国产精品区一区二区三| 国产人成亚洲第一网站在线播放| 欧美videossexotv100| 欧美一区二区三区四区视频| 制服丝袜日韩国产| 欧美一级在线观看| 欧美精品一区二区三| 精品久久五月天| 久久久久久久久久久久电影| 国产午夜精品一区二区三区四区| www一区二区| 久久精品男人天堂av| 国产片一区二区三区| 中文在线免费一区三区高中清不卡| 国产欧美一区二区精品性| 国产欧美日韩精品a在线观看| 久久九九久久九九| 中文字幕中文字幕一区二区| 中文字幕一区二区三区精华液| 国产精品美女久久久久aⅴ| 国产精品久久久久久久第一福利| 国产精品久久久久久久久晋中| 国产精品嫩草久久久久| 日韩毛片高清在线播放| 一区二区三区在线观看动漫| 亚洲一区欧美一区| 全部av―极品视觉盛宴亚洲| 老司机免费视频一区二区| 国模冰冰炮一区二区| 成人激情视频网站| 在线观看视频一区二区欧美日韩| 这里只有精品免费| 精品国产免费一区二区三区四区| 久久久国产综合精品女国产盗摄| 国产精品久久影院| 午夜精品久久久久久久99樱桃| 久久精品国产99国产精品| 国产福利一区二区三区视频| 97久久超碰国产精品电影| 欧美精品电影在线播放| 欧美国产一区二区在线观看| 伊人色综合久久天天| 日韩电影在线免费| 成人午夜精品一区二区三区| 在线亚洲高清视频| 精品裸体舞一区二区三区| 亚洲欧洲日韩av| 日韩国产精品久久久久久亚洲| 国产精品一区二区久久精品爱涩| 99久久精品国产网站| 日韩精品一区二区三区在线播放| 国产精品你懂的在线欣赏| 午夜精品久久久久久久99水蜜桃| 国产精品一品视频| 欧美男同性恋视频网站| 国产三级一区二区三区| 午夜一区二区三区视频| 国产成人高清在线| 欧美精品免费视频| 亚洲国产成人私人影院tom| 日韩电影在线观看电影| av男人天堂一区| 欧美一区国产二区| 一区二区三区波多野结衣在线观看| 蜜臀av一级做a爰片久久| 一本久道中文字幕精品亚洲嫩| 久久人人超碰精品| 日韩福利电影在线| 成人一区二区在线观看| 日韩视频免费观看高清完整版 | 日韩女优av电影在线观看| 国产精品电影院| 久久99日本精品| 欧美日韩专区在线| 国产精品短视频| 国精产品一区一区三区mba桃花| 欧美日韩国产不卡| 亚洲免费观看在线视频| 成人午夜免费av| 久久久另类综合| 久久99精品久久久久| 欧美三级日韩三级| 亚洲一区视频在线| 99久久久久免费精品国产| 久久久久国产精品免费免费搜索| 久久成人av少妇免费| 欧美精品自拍偷拍| 亚洲男同性视频| 成人av集中营| 久久久久久久国产精品影院| 日日摸夜夜添夜夜添精品视频| 91黄色在线观看| 亚洲欧美日韩久久| 色综合中文字幕国产| 国产日产欧美一区二区视频| 久久超碰97人人做人人爱| 欧美乱妇23p| 性做久久久久久免费观看欧美| 97aⅴ精品视频一二三区| 亚洲欧洲韩国日本视频| 春色校园综合激情亚洲| 久久精品视频一区二区三区| 韩国三级在线一区| 久久无码av三级| 激情久久久久久久久久久久久久久久 | 国产suv精品一区二区883| 久久久不卡网国产精品二区| 韩国精品主播一区二区在线观看| 欧美一级艳片视频免费观看| 人妖欧美一区二区| 精品国产a毛片| 美国十次综合导航| 久久色视频免费观看| 韩国视频一区二区| 久久久91精品国产一区二区精品| 国产91精品在线观看| 中文字幕视频一区二区三区久| 成人精品一区二区三区中文字幕| 国产精品污污网站在线观看 | 欧美一二三在线| 精品无码三级在线观看视频 | 毛片av一区二区| 久久久一区二区| www.欧美亚洲| 亚洲一区二区在线播放相泽| 欧美老肥妇做.爰bbww视频| 视频一区在线播放| 欧美xxxx在线观看| 国产v日产∨综合v精品视频| 亚洲美女屁股眼交3| 在线成人免费观看| 国产综合久久久久久鬼色| 国产精品久久久久三级| 日本丶国产丶欧美色综合| 天天综合色天天综合色h| 精品福利在线导航| 不卡的av网站| 五月开心婷婷久久| 国产欧美精品一区二区三区四区| 成人av电影在线| 婷婷成人综合网| 欧美精品一区二| 色综合久久99| 蜜臀av一级做a爰片久久| 国产精品国产三级国产有无不卡| 欧美三级日韩三级国产三级| 国产伦精品一区二区三区免费迷 | 欧美一区二区视频在线观看2022| 精品系列免费在线观看| 亚洲男同1069视频| 欧美本精品男人aⅴ天堂| 91丨九色丨黑人外教| 青青草精品视频| 亚洲美女淫视频| 久久精品日产第一区二区三区高清版| 91成人免费在线| 韩国理伦片一区二区三区在线播放 | 看电影不卡的网站| 亚洲人精品一区| 久久色在线观看| 欧美电影一区二区| 成人激情免费视频| 久久精品国产免费看久久精品| 亚洲欧美一区二区三区孕妇| 欧美成人bangbros| 欧美亚洲动漫制服丝袜| 国产成人免费视频|