新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > uC/OSII移植步驟

        uC/OSII移植步驟

        作者: 時間:2016-10-08 來源:網絡 收藏
        ; OS_CPU_FIQ_ISR_Handler();
        MOVLR, PC
        BXR0
        MSRCPSR_c, #(NO_INT | SVC32_MODE) ; Change to SVC mode
        LDRR0,OS_IntExit; OSIntExit();
        MOVLR, PC
        BXR0; RESTORE NEW TASK'S CONTEXT
        LDMFDSP!, {R4}; Pop new task's CPSR
        MSRSPSR_cxsf, R4
        LDMFDSP!, {R0-R12,LR,PC}^; Pop new task's context
        4)OSStartHighRdy()函數(shù)
        該函數(shù)是在OSStart()多任務啟動后,負責從最高優(yōu)先級任務的TCB控制塊中獲得該任務的堆棧指針SP通過SP依次將CPU現(xiàn)場恢復。這時系統(tǒng)就將控制權交給用戶創(chuàng)建的該任務進程,直到該任務被阻塞或者被更高優(yōu)先級的任務搶占CPU。該函數(shù)僅僅在多任務啟動時被執(zhí)行一次,用來啟動第一個也即最高優(yōu)先級任務。
        OSStartHighRdy
        MSRCPSR_cxsf, #0xD3; Switch to SVC mode with IRQ and FIQ disabled
        LDRR0, ??OS_TaskSwHook


        關鍵詞:

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 丹棱县| 榕江县| 前郭尔| 邹城市| 田阳县| 抚顺县| 贞丰县| 交城县| 夏津县| 神木县| 新疆| 焦作市| 巴楚县| 花莲县| 锡林郭勒盟| 安溪县| 安义县| 东源县| 南昌市| 望都县| 贵定县| 罗田县| 陈巴尔虎旗| 英吉沙县| 黔江区| 阿拉善左旗| 西宁市| 上饶市| 延安市| 本溪市| 布拖县| 禄劝| 临邑县| 元谋县| 顺义区| 盐城市| 犍为县| 佛坪县| 巴马| 华阴市| 格尔木市|