新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM存儲器之:存儲管理單元MMU

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

        作者: 時間:2013-09-30 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257009.htm

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

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

        任務1正在運行

        任務2正在運行

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

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

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

        ①保存執行任務的上下文,并將執行任務設置為睡眠態;

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

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

        ④恢復喚醒任務的上下文;

        ⑤繼續執行被恢復的任務。

        下面是關于FCSE的一些提示。

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

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

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

        ④必須定義和使用一個活躍的域控制系統。

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

        存儲器相關文章:存儲器原理



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

        關鍵詞: ARM 存儲管理單元 MMU

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南江县| 淳化县| 香河县| 伊宁县| 奉节县| 怀柔区| 易门县| 北辰区| 桦甸市| 平阴县| 岳阳市| 电白县| 绥宁县| 长泰县| 南安市| 靖江市| 唐海县| 石泉县| 广水市| 新巴尔虎右旗| 龙山县| 舒兰市| 大名县| 盐源县| 浦江县| 阿合奇县| 罗山县| 安平县| 西华县| 巢湖市| 和田县| 连江县| 岑巩县| 大厂| 瓦房店市| 阳新县| 云南省| 津市市| 永泰县| 广昌县| 南昌县|