scatter 文件使用原因和在ds-5中的应用

来源:互联网 发布:java io异常 编辑:程序博客网 时间:2024/06/03 20:20

arm开发中对于最终的下载文件生成过程中的最后链接部分存在地址分配的问题,对于arm官方的连接器armlink有如下的命令

可以看到这里面有两个比较有用的命令

-ro_base -rw_base 设置ro和rw的地址

这个在过去的内容中介绍过 在后面有个-sctter file的命令要介绍下

这个命令式可以将ro rw zi等base地址以文本的方式读入到链接器形成特定的存储结构的可执行文件,为什么要用这个文件而不是在上边的命令中一个一个的设置呢?这个不仅仅是效率更高的考虑,主要有以下的几个原因:

1 存在复杂的地址映射:例如代码和数据需要分开放在在多个区域。
2 存在多种存储器类型:例如包含 Flash,ROM,SDRAM,快速SRAM。我们根据代码与数据的特性把他们放在不同的存储器中,比如中断处理部分放在快速SRAM内部来提高响应速度,而把不常用到的代码放到速度比较慢的Flash内。
3 函数的地址固定定位:可以利用Scatter file实现把某个函数放在固定地址,而不管其应用程序是否已经改变或重新编译。
4 利用符号确定堆与堆栈:
5 内存映射的IO:采用scatter file可以实现把某个数据段放在精确的地指处。

本质的原因就是说scatter file的使用上更加的灵活具体的应用方法就是在ds-5中进行加载。

加载方法:

首先右键工程 点击properties

点开文件之后找到setting

打开setting 之后点击image layout

点击apply 就可以编译了


0 0