新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东丰县| 海南省| 乐平市| 比如县| 大埔县| 铁岭市| 天水市| 安塞县| 唐山市| 长乐市| 德州市| 英山县| 郑州市| 武陟县| 安庆市| 额尔古纳市| 登封市| 新郑市| 平潭县| 阳原县| 沙雅县| 潞西市| 汨罗市| 东乌珠穆沁旗| 青浦区| 吐鲁番市| 栾川县| 武邑县| 赤壁市| 阿瓦提县| 永定县| 信宜市| 五家渠市| 淳安县| 镇安县| 鸡泽县| 涿州市| 阿城市| 博白县| 普定县| 旬邑县|