【发布时间】:2016-01-24 12:26:15
【问题描述】:
RAM_HIGH_ADRS 是在 config.h 和 makefile 中定义的参数。据我了解,它定义了程序的数据+文本+bss段将写入RAM的地址。
这意味着,例如,如果 cpu 有 64 Mb 的 RAM,并且 RAM_HIGH_ADRS 等于 0x00A00000 (10 Mb),则整个程序有 54 Mb 的空间用于存储 text+data+bss+heap+堆栈。
我对此提出质疑的原因是我正在开展一个项目,在该项目中我大幅扩展了数据段,导致 CPU 无法启动。然后我增加了 RAM_HIGH_ADRS,此时允许cpu 启动。这让我感到困惑,因为据我了解,在 RAM_LOW_ADRS 和 RAM_HIGH_ADRS 之间写入的唯一内容是 VxWorks 映像,因此增加 RAM_HIGH_ADRS 只会降低数据段的可用大小。
【问题讨论】: