新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM Linux (S3C6410架構/2.6.35內核)的內存映射(四)

        ARM Linux (S3C6410架構/2.6.35內核)的內存映射(四)

        作者: 時間:2016-11-09 來源:網絡 收藏
        set_pte_ext()的作用是根據Linux給出的Linux版本頁表項來填充Arm硬件版本的頁表項。

        對于s3c6410,set_pte_ext()函數由匯編宏armv6_set_pte_ext來實現,定義在proc-macros.S文件中。

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

        進入函數時,參數分別為:

        r0: pte的地址,這里的pte是二級頁表Linux版本中對應的頁表項。

        r1: Linux版二級頁表項的內容。

        r2: 0。

        [c].macro armv6_set_pte_ext pfxstr r1, [r0], #-2048 @ linux versionbic r3, r1, #0x000003fcbic r3, r3, #PTE_TYPE_MASKorr r3, r3, r2orr r3, r3, #PTE_EXT_AP0 | 2adr ip, pfx()_mt_tableand r2, r1, #L_PTE_MT_MASKldr r2, [ip, r2]tst r1, #L_PTE_WRITEtstne r1, #L_PTE_DIRTYorreq r3, r3, #PTE_EXT_APXtst r1, #L_PTE_USERorrne r3, r3, #PTE_EXT_AP1tstne r3, #PTE_EXT_APXbicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0tst r1, #L_PTE_EXECorreq r3, r3, #PTE_EXT_XNorr r3, r3, r2tst r1, #L_PTE_YOUNGtstne r1, #L_PTE_PRESENTmoveq r3, #0str r3, [r0]mcr p15, 0, r0, c7, c10, 1 @ flush_pte.endm[/c] 


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 离岛区| 临安市| 南靖县| 汉川市| 井冈山市| 克什克腾旗| 安图县| 巫山县| 凤冈县| 黑水县| 平武县| 全州县| 武宁县| 兴化市| 隆尧县| 达尔| 八宿县| 邹平县| 赣州市| 根河市| 水富县| 金溪县| 同德县| 兰考县| 乐平市| 九寨沟县| 乡城县| 巴马| 上饶县| 株洲市| 玉门市| 平江县| 台南市| 怀仁县| 安丘市| 会昌县| 成武县| 东阳市| 兰溪市| 清新县| 儋州市|