https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js

链接文件lds示例

链接lds文件组成部分:

SECTIONS
    .text:          /*代码段*/
    .rodata:        /*只读数据段*/ 
    .data:          /*可读可写的初始化数据段*/
    .bss:            /*未初始化数据段*/
    ALIGN(4);     /*对齐方式,四字节对齐*/
    .   /*当前位置*/

 

整个链接lds示例:

OUTPUT_ARCH(arm) //设置输出文件的体系架构。
ENTRY(_start) //将_start这个全局符号设置成入口地址。
SECTIONS //输出文件内容布局
{
    . = 0x00000000; //指定地址0x00000000
     
    . = ALIGN(4); //代码以4字节对齐
    .text : //指定.text section段(位于0x00000000)
    {
        //添加第一个目标文件: cpu/arm920t/start.o里面的.text代码段    
        cpu/arm920t/start.o (.text) 
        //添加第二个目标文件: board/100ask24x0/boot_init.o里面的.text代码段    
        board/100ask24x0/boot_init.o (.text) 
        // *(.text) 表示添加剩下的全部文件的.text代码段    
        *(.text)     
    }
     
    . = ALIGN(4);
    .rodata : {
        //指定.rodata section段(位于0x00000000+.text section),将所有的.rodata只读数据段合并成一个.rodata只读数据段
        *(.rodata) 
    }
             
    . = ALIGN(4);
    .data : { 
        //指定读写数据段, *(data):添加所有文件的数据段
        *(.data)
     } 
    
    . = ALIGN(4);
    .got : {
        //指定got段,got段是uboot自定义的一个段
         *(.got) 
    } 
    

    . = .;
    //把__u_boot_cmd_start赋值为当前位置, 即起始位置    
    __u_boot_cmd_start = .; 
    // u_boot_cmd段,所有的u-boot命令相关的定义都放在这个位置    
    .u_boot_cmd : { *(.u_boot_cmd) } 
    // u_boot_cmd段结束位置    
    __u_boot_cmd_end = .; 
    
             
    . = ALIGN(4);
    //把__bss_start赋值为当前位置,即bss段的开始位置
    __bss_start = .; 
    //指定bss段,这里NOLOAD的意思是这段不需装载,仅在执行域中才会有这段    
    .bss : { *(.bss) } 
    //把_end赋值为当前位置,即bss段的结束位置
    
    _end = .; 
    
}

 

posted @ 2023-02-13 14:05  SLOWBY  阅读(103)  评论(0编辑  收藏  举报