音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

這個時鐘中斷服務程序有什么問題嗎?

作者:js_wawayu 欄目:嵌入式系統
這個時鐘中斷服務程序有什么問題嗎?
UCOS-II,ARM44B0:
LINK_SAVE    DCD        0
PSR_SAVE    DCD        0

OSTickISR
    STMFD    sp!, {r4}
    
    LDR        r4, =LINK_SAVE
    STR        lr, [r4]     ; LINK_SAVE = lr_irq

    MRS        lr,    spsr
    STR        lr, [r4, #4] ; PSR_SAVE = spsr_irq
    
    LDMFD    sp!, {r4}
        
    ORR        lr, lr,    #0x80 ; Mask irq for context switching before
    MSR        cpsr_cxsf, lr ; returning BACK from irq mode.

    SUB        sp, sp, #4                 ; Space for PC
    STMFD    sp!, {r0-r12, lr}

    LDR        r4, =LINK_SAVE
    LDR        lr, [r4, #0]
    SUB        lr, lr, #4                 ; lr = LINK_SAVE - 4,
    STR        lr, [sp, #56] ; the return address for pc.

    LDR        r4, [r4, #4]     ; r4 = PSR_SAVE,
    STMFD    sp!, {r4}                 ; CPSR of the task

    LDR        r4, =OSTCBCur
    LDR        r4, [r4]
    STR        sp, [r4]    ;OSTCBCur -> stkptr = sp

    BL    OSIntEnter
    BL     OSTimeTick
    BL    tick_hook                       ; here do_IRQ is used to clear some virtual-hardware flags
    BL    OSIntExit

    
    LDMFD     sp!, {r4}                ; pop new task cpsr
    MSR     cpsr_cxsf, r4
    LDMFD     sp!, {r0-r12,lr,pc}      ; pop new task r0-R12 & pc
運行的時候發(fā)現,沒有任務切換的情況下,返回不到原來被中斷的那個任務,而是從MAIN函數開始出運行。

參與討論
昵稱:
討論內容:
 
 
相關帖子
pop群
我想學習ARM及UCLINUX
那位大蝦用過模擬濾波器芯片?請指教
求教!!!1vxworks的任務切換時間
請問LinuxPPC中的8xx
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號