SmartFusion从FPGA到ARM(六)——SoftConsole链接脚本说明

tech2026-02-10  2

文章目录

0.前言更改.ld链接脚本文件链接脚本的说明在Libero中加载Hex文件 系列教程: SmartFusion从FPGA到ARM系列教程

0.前言

SoftConsole的工程默认是包括两个构建配置的,一个是Debug版本,一个是Release版本,默认Debug版本是在eSRAM中运行,Release版本在eNVM中运行,我们也可以手动指定链接脚本,从而指定生成Hex文件的类型。

更改.ld链接脚本文件

在SoftConsole工程名称右键,选择properties,进入工程配置面板,

进行链接脚本选择界面,

指定链接脚本所在的位置,

链接脚本的说明

链接脚本主要分为两类,一种是运行在内部的Flash,一种是运行在外部的Flash。这里只讨论内部的Flash,

debug-in-actel-smartfusion-esram.ld

生成的Hex文件起始地址为:0x20000000,在内部的SRAM运行,掉电数据丢失,可以用于程序开发过程中的调试。

debug-in-actel-smartfusion-envm.ld

生成的Hex文件起始地址:0x60000000,直接下载到内部的eNVM区域,掉电数据不丢失,可以用于最终调试完成的程序下载,如果你发现在SoftConsole中下载运行正常,但是掉电之后程序运行不正确,说明你使用的是esram链接脚本,需要更换为这个envm链接脚本。

以下几个是在外部Flash运行时,所需要指定链接脚本文件:

debug-in-external-flash.ld debug-in-external-ram.ld production-execute-in-place.ld production-relocate-executable.ld

在Libero中加载Hex文件

如果采用Libero eNVM区域直接加载Hex的方式运行,会提示如下错误:

这时,就需要把Hex文件的第一行删除才能加载成功,因为第一行指定了Hex文件的起始地址。

但是如果是Keil环境开发,需要配置起始地址为0,这样生成的hex文件才能加载成功。

同时,在链接选项中勾选上使用工程配置,而不使用Scatter链接文件。

最新回复(0)