SoftConsole的工程默认是包括两个构建配置的,一个是Debug版本,一个是Release版本,默认Debug版本是在eSRAM中运行,Release版本在eNVM中运行,我们也可以手动指定链接脚本,从而指定生成Hex文件的类型。
在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 eNVM区域直接加载Hex的方式运行,会提示如下错误:
这时,就需要把Hex文件的第一行删除才能加载成功,因为第一行指定了Hex文件的起始地址。
但是如果是Keil环境开发,需要配置起始地址为0,这样生成的hex文件才能加载成功。
同时,在链接选项中勾选上使用工程配置,而不使用Scatter链接文件。
