Segger的链接器快速、灵活、使用简单、支持 Cortex-M微控制器,并是专门针对嵌入式开发人员的需求而设计的。其链接程序脚本文件的指令和IAR的相似,从零开始编写,没有任何难度。SEGGER Linker可以轻松地用于在现有项目中取代GNU Linker。
在标准Embedded Studio项目中,目标的内存布局在* _MemoryMap.xml中定义。可以使用SEGGER Linker重用该内存映射文件,以便在大多数情况下可以直接使用示例链接程序脚本SEGGER_Flash.icf。
SEGGER Linker未使用节放置文件* _placement.xml,而是使用SEGGER链接程序脚本(* .icf)。编写SEGGER链接脚本比GNU链接脚本更简单。
对于只有一个FLASH和一个RAM区域的默认项目,需要完成以下步骤:
1、将SEGGER链接器脚本模板文件从$(StudioDir)/samples/SEGGER_Flash.icf复制到您的项目目录中。
2、将匹配的启动文件从$(StudioDir)/samples/SEGGER_THUMB_Startup.s复制到您的项目目录中。
3、将项目选项中的链接器选项的Linker设置为“SEGGER”。
4、将项目选项中链接器选项的Linker Script File设置为项目目录中的链接器脚本。
5、从项目中删除thumb_crt0.s
6、将SEGGER_THUMB_Startup.s添加到您的项目中
如果在您的内存布局中包含多个FLASH或RAM区域,则可以告诉SEGGER Linker自动放入多个区域:
place in RAM1 then RAM2 { ... };
如果您在* _placement.xml中添加了其他部分,则也可以在SEGGER Linker脚本中执行以下操作:
place in RAM { ..., .myregion };
SEGGER Linker还提供了更多的功能,可为您提供更广泛的放置选择,以便更好,以便更好地利用你的目标内存。要了解详细情况,请参阅在Embedded Studio中的《SEGGER Linker User Guide》。具体位置如下:从Embedded Studio的菜单Help->Contents-> Using the SEGGER Linker -> SEGGER Linker User Guide