C _f_数据_rom链接器脚本符号

C _f_数据_rom链接器脚本符号,c,embedded,microcontroller,codewarrior,C,Embedded,Microcontroller,Codewarrior,我正在编写微控制器32位和codewarior编译器的启动代码,因为我们必须处理链接器脚本。启动代码中用于初始化RAM和stack的某些变量来自链接器脚本 链接器脚本使用不同的地址初始化这些变量。问题是一个变量的地址错误。在链接器脚本中,它通过以下命令初始化\u f\u data\u rom 有人能告诉我链接器是如何初始化变量的吗 堆栈地址,RAM初始化 此命令的含义是什么 看起来像 RC_SDATA_SRC = _f_sdata_rom; RC_SDATA_DEST

我正在编写微控制器32位和
codewarior
编译器的启动代码,因为我们必须处理链接器脚本。启动代码中用于初始化
RAM
stack
的某些变量来自链接器脚本

链接器脚本使用不同的地址初始化这些变量。问题是一个变量的地址错误。在链接器脚本中,它通过以下命令初始化
\u f\u data\u rom

  • 有人能告诉我链接器是如何初始化变量的吗 堆栈地址,RAM初始化
  • 此命令的含义是什么
看起来像

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;
查看第69页,您必须查看这些变量的导出方式,例如:

在同一文档的第65页,您可以找到为链接器配置地址的表单。查看并检查这些设置。

查看第69页,您必须查看这些变量的导出方式,例如:


在同一文档的第65页,您可以找到为链接器配置地址的表单。查看并检查这些设置。

您应该发布整个链接器脚本。顺便说一句,我猜这是闪存中静态数据位置的地址。通常被定义为闪存地址空间中的某个部分。这些变量似乎是源(闪存)和目标(ram)地址,用于在启动时复制bss部分分配变量的值(例如start.s)。是的,您是对的,它正在执行相同的工作。但问题是“数据rom”获取错误的闪存地址。所以我很担心,这个commad“数据rom”是如何工作的?如何修复它获取闪存的正确地址。我猜这些值是根据项目设置自动计算的。请看我在回答中提到的第65页。你应该发布整个链接器脚本。顺便说一句,我猜这是闪存中静态数据位置的地址。通常被定义为闪存地址空间中的某个部分。这些变量似乎是源(闪存)和目标(ram)地址,用于在启动时复制bss部分分配变量的值(例如start.s)。是的,您是对的,它正在执行相同的工作。但问题是“数据rom”获取错误的闪存地址。所以我很担心,这个commad“数据rom”是如何工作的?如何修复它获取闪存的正确地址。我猜这些值是根据项目设置自动计算的。请看一下我在回答中提到的第65页。