我正在研究 32 位微 Controller 和 codewarrior
编译器的启动代码,因为我们必须处理链接描述文件。启动代码中用于初始化 RAM
和 stack
的某些变量来自链接描述文件。
链接器脚本使用不同的地址初始化这些变量。问题是一个变量有错误的地址。在链接器脚本中,它通过以下命令初始化 _f_data_rom
。
- 谁能告诉我链接器如何初始化提供的变量 堆栈地址,RAM 初始化?
- 这个命令是什么意思
_f_data_rom
?
看起来像
RC_SDATA_SRC = _f_sdata_rom;
RC_SDATA_DEST = _f_sdata;
RC_SDATA_SIZE = (SIZEOF(.sdata)+3) / 4;
RC_DATA_SRC = _f_data_rom;
RC_DATA_DEST = _f_data;
RC_DATA_SIZE = (SIZEOF(.data)+3) / 4;
最佳答案
查看this document在第 69 页,您必须查看 __ppc_eabi_linker.h
如何导出这些变量,例如:this link to file
进入同一个文档,在第 65 页,您可以找到为链接器配置地址的表格。看一看并检查这些设置。
关于c - _f_data_rom 链接描述文件符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37877554/