Advertisement

JZ2440 代码重定位(版本)/ LDS 脚本

阅读量:

在上一章节中,我们探讨了采用代码重定位的必要性。本章将重点阐述代码重定位的具体实施方式。在进行重定位操作时,有必要引入链接脚本这一概念。具体而言,我们将有关代码重定位的起始地址、终止位置以及内容布局等配置信息集中存放在一个文件中。随后,Makefile会在编译过程中调用该*.lds文件,并据此完成各代码段的地址分配。首先,我们进行了一个实验,在未使用lds链接脚本的前提下,直接在Makefile中实现代码重定位。然而实验结果显示,生成的bin文件体积高达800M。

如上图所示,将-Tdata段(包含全局变量和static变量)的存储位置配置至SDRAM中,具体地址为0x30001000。

完成编译之后可观察到:

系统运行时所占用的内存容量超过了800MB。

若查阅反汇编生成的dis文件内容,将能够发现:

实际代码终止段与重定向数据所在地址之间的差异值

![](https://cdl.ita

全部评论 (0)

还没有任何评论哟~