最新文章:

首页 code

link script

发布时间:2016年09月09日 评论数:抢沙发 阅读数:147


    1.示例

     
    ENTRY(start)
     
    MEMORY
    {
        rom : org = 0xbfc00000, len = 0x1000
        ram : org = 0x80001000. len = 0x1000  
    }
     
    SECTIONS
    {
        .text (VMA) : AT (LMA):
        {
        *(.text);
        } > ram
     
        _gp = .;
        .bss    :  
        {
     
            . = ALIGN(4);
            __bss_start = ABSOLUTE(.);  
            *(.bss) *(.sbss)
            . = ALIGN(4);
            __bss_end = ABSOULUTE(.);      
        } > ram
    }
     
    2. SECTIONS 对齐
     
    1) 只保证VMA的对齐(常用方式):
     
    . = ALIGN(0x8);
     
     
    2) 可以保证LMA地址对齐的方式:
     
     
    AT( ( LOADADDR(.text)+SIZEOF(.text) + 8-1 ) & ~( 8-1 ) )
     
     
    3.SECTIONS COPY FROM ROM TO RAM
     
    1) linkscript 加 copy 段, 该段 VMA=LMA, 修改程序ENTRY(copy_start)
     
     
        .text_copy 0xbfc00000 : AT (0xbfc00000)
        {
        *(.text_copy)
        } > rom
     
    2) 汇编代码中添加该段程序
     
        .section ".text_copy", "ax"
        .globl copy_start
            .ent copy_start
     copy_start:
    /* copy .text .data .ehframe */
        LA    a0, __lma1_start
        LA    a2, __vma1_start
        LA    a3, __vma1_end
    1:    lw    v0, 0(a0)
        addiu    a0, 4
        sw    v0, 0(a2)
        addiu    a2, 4
        blt    a2, a3, 1b
        nop
    /* initial .bss */
        LA    v0, __bss_start
        LA    v1, __bss_end
        LA    a0, 0
    2:    sw    a0, 0(v0)
        addiu    v0, v0, 4
        bltu    v0, v1, 2b
        nop
    /*jump to start*/
        la    v0, start
        j    v0
        nop
        .end copy_start
     
二维码加载中...
本文作者:admin      文章标题: link script
本文地址:http://jiang.shuang.he.cn/blog/?post=49
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论