|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教版主:移植UC0S的困惑 |
| 作者:luck_zhan 欄目:ARM技術(shù) |
按UC/0S_II中所說:在中斷處理完成后,如果有高優(yōu)先級的任務(wù)進入就緒態(tài),UC/0S_II將進行任務(wù)高度執(zhí)行高優(yōu)先級的任務(wù),而不返回產(chǎn)生中斷的任務(wù)。 但在〈紅皮書〉中所提供的移植代碼中,中斷退出時,并未進行任務(wù)調(diào)度。 請版主指點迷津。 MACRO $IRQ_Label HANDLER $IRQ_Exception EXPORT $IRQ_Label ; 輸出的標(biāo)號 IMPORT $IRQ_Exception ; 引用的外部標(biāo)號 $IRQ_Label SUB LR, LR, #4 ; 計算返回地址 STMFD SP!, {R0-R3, R12, LR} ; 保存任務(wù)環(huán)境 MRS R3, SPSR ; 保存狀態(tài) STMFD SP!, {R3} SWI 0x42 ; 包括前面注釋的代碼 BL $IRQ_Exception ; 調(diào)用c語言的中斷處理程 MSR CPSR_c, #0x92 BL OSIntExit SWI 0x43 ; 返回1需要切換 CMP R0, #0 ;!。。。。。! LDMFD SP!, {R3} MSR SPSR_cxsf, R3 LDMEQFD SP!, {R0-R3, R12, PC}^ ; 不進行任務(wù)切換 LDR PC, =OSIntCtxSw ; 進行任務(wù)切換 MEND |
| 2樓: | >>參與討論 |
| 作者: zlgARM 于 2005/1/13 11:18:00 發(fā)布:
切換任務(wù)的前提是就緒的最高優(yōu)先級任務(wù)不是當(dāng)前正運行的任務(wù) |
|
| 3樓: | >>參與討論 |
| 作者: luck_zhan 于 2005/1/13 12:29:00 發(fā)布:
謝謝!是我自書本沒有看仔細!下回把書看透先! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |