链接脚本文件

本文详细解析了链接脚本文件的各个部分,包括不同段的定义及其在程序启动过程中的作用,例如只读区域、读/写区域、清0区域等,并介绍了如何通过链接脚本控制这些段的布局。

链接脚本文件解释:
SECTIONS
{
 ROM_BASE = 0x0;/* image store address (in Flash)*/
 . = 0x30000000;                    赋值当前地址
 Image_RO_Base = .;                 只读区域基地址,启动程序中使用的符号
 .text : { *(.text) }               代码段
 Image_RO_Limit = .;                只读区域长度,启动程序中使用的符号
 Image_RW_Base = .;                 读/写区域基地址,启动程序中使用的符号
 .data : { *(.data) }               数据段,程序中已初始化的全局变量放在该段
 .rodata : { *(.rodata) }           只读数据段,程序中的静态全局变量等固定值放在该段
 Image_ZI_Base = .;                 清0区域基地址,启动程序中使用的符号
 .bss : { *(.bss) }                 包含未初始化的全局可用的数据,如未初始化的全局变量
 Image_ZI_Limit = .;                清0区域长度,启动程序中使用的符号
 Image_RW_Limit = .;                读/写区域长度,启动程序中使用的符号
 __bss_start__ = .;                
 __bss_end__ = .;
 __EH_FRAME_BEGIN__ = .;
 __EH_FRAME_END__ = .;
PROVIDE (__stack = .);
 end = .;                           结束地址
 _end = .;                         
 .debug_info     0 : { *(.debug_info)  }               调试信息输出段
  .debug_line  0 : { *(.debug_line)  }
    .debug_abbrev   0 : { *(.debug_abbrev)}
    .debug_frame    0 : { *(.debug_frame) }
}

 

肤浅的理解,请大虾们指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值