新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式軟件開發之: 映像文件存儲器映射調整

        嵌入式軟件開發之: 映像文件存儲器映射調整

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

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

        3.-reloc -split選項的替換

        使用-split選項生成的映像由兩個加載域和三個執行域組成。

        使用以下的鏈接選項重新分割并定位加載域。

        · -reloc

        組合使用-reloc -split生成具有兩個加載域的映像,并且使加載域具有RELOC屬性。

        · -ro-base address1

        指定包含RO輸出段的域的載入地址和執行地址。

        · -ro-base address2

        指定包含RW輸出段的域的載入地址和執行地址。

        · -split

        將默認的單一加載域(包含RO和RW輸出段的加載域)分成兩個加載域。一個載入域包含RO輸出段,另一個包含RW輸出段。

        下面的例子顯示了與使用-ro-base 0x8000 -rw-base 0x040000 -split等效的Scatter文件。

        LOADREG1 0x8000 ;指定第一個加載域的起始地址為0x8000

        {

        ROM +0

        {

        *(+RO)

        }

        }

        LOADREG2 0x040000 ;第二個加載域的起始地址為0x40000

        {

        RAM_RW +0

        {

        *(+RW) ;放置所有的RW段

        }

        RAM_ZI +0

        {

        *(+ZI)

        }

        }

        使用上例中的Scatter文件創建的內存映像有兩個加載域,分別為LOADREG1和LOADREG2,它們的起始地址分別為0x8000和0x040000。

        有三個執行域,分別為ROM、RAM_RW和RAM_ZI,它們分別包含RO、RW和ZI輸出段。ROM的執行地址是0x8000。

        RAM_RW執行域與ROM不相鄰。其執行地址是0x040000。

        執行域RAM_ZI緊隨RAM_RW域放置。

        可以使用-reloc選項和-split選項配合使用,指定兩個加載域具有RELOC屬性。

        下面的例子顯示與使用-ro-base 0x8000 -rw-base 0x040000 -reloc -split等效的Scatter文件。

        LOADREG 0x010000 RELOC

        {

        ROM + 0

        {

        * (+RO)

        }

        }

        LOADREG 0x040000 RELOC

        {

        RAM_RW + 0

        {

        * (+RW)

        }

        RAM_ZI +0

        {

        * (+ZI)

        }

        }

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



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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 温宿县| 江山市| 葵青区| 徐水县| 普格县| 苗栗县| 贺兰县| 平凉市| 若尔盖县| 天全县| 竹溪县| 阜阳市| 唐海县| 高陵县| 利津县| 历史| 五华县| 珲春市| 运城市| 仙桃市| 高清| 彭泽县| 雷波县| 房产| 铁力市| 仙桃市| 六枝特区| 左权县| 北安市| 新建县| 汝南县| 重庆市| 个旧市| 民乐县| 墨竹工卡县| 延津县| 甘南县| 景谷| 陇川县| 宁陵县| 横峰县|