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