新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM存儲器之:存儲管理單元MMU

ARM存儲器之:存儲管理單元MMU

作者: 時間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/257009.htm

(2)一個快速上下文切換的例子

圖15.39顯示了一個從任務(wù)1切換到任務(wù)2之前和之后的存儲器布局。

任務(wù)1正在運行

任務(wù)2正在運行

圖15.39快速上下文切換擴展例子

從圖中可以看出,任務(wù)1和任務(wù)2都運行在0x00000000~0x01ffffff的地址空間。從任務(wù)1切換到任務(wù)2域控制要做相應(yīng)的改變。通過在CPU和之間加FCSE使系統(tǒng)的虛擬地址空間映射沒有改變,所以不需要清除(Flush)或清理(Clean)Cache或TLB。

使用FCSE時執(zhí)行一次上下文切換需要的步驟:

①保存執(zhí)行任務(wù)的上下文,并將執(zhí)行任務(wù)設(shè)置為睡眠態(tài);

②將喚醒任務(wù)的進程ID寫到CP15的寄存器c13中;

③通過寫CP15的寄存器c3,將當前任務(wù)的域設(shè)置為不可訪問,而喚醒任務(wù)的域設(shè)置為客戶訪問;

④恢復(fù)喚醒任務(wù)的上下文;

⑤繼續(xù)執(zhí)行被恢復(fù)的任務(wù)。

下面是關(guān)于FCSE的一些提示。

①任務(wù)在大小上有固定的最大32MB的限制。

②存儲管理必須使用有固定起始地址(32MB的倍數(shù))的固定32MB分區(qū)。

③除非想為每個任務(wù)管理一個異常向量表,否則使用CP15寄存器c1的V位將異常向量表放置在虛擬地址0xffff0000。

④必須定義和使用一個活躍的域控制系統(tǒng)。

⑤如果使用域來保護各個任務(wù),則除非修改一級頁表中域的相應(yīng)位,并在上下文切換時清除TLB,否則最多只能有16個并發(fā)任務(wù)。

存儲器相關(guān)文章:存儲器原理



上一頁 1 2 3 4 5 6 7 8 9 10 下一頁

關(guān)鍵詞: ARM 存儲管理單元 MMU

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉