This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Compiler/CCStudio:MAP文件中全局符号的地址

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/575900/compiler-ccstudio-the-address-of-global-symbols-in-map-file

部件号:CCStudio

工具/软件:TI C/C++编译器

在MAP文件的末尾,有一个全局符号列表,列出地址和名称。有些地址是符号的真实地址,但有些地址显然不是地址,例如,在_stack_size下面是在cmd文件中设置的const值。


全局符号:按符号地址排序

地址名称
--------- ---
0.1万 __stack_size
0.1万 __SYSMEM_SIZE

在cmd文件中:  

堆栈0x0亿 /*堆栈大小*/
堆0x0亿 /*堆大小*/

此外,在SYMBOL值下面也不能是地址:

FF0000 INT_VECS
FFFFFFFF __binit__
FFFFFFFF __c_args__
FFFFFFFF __Pinit__
FFFFFFFF绑定
FFFFFFFF Pinit

对于基于BIOS的项目,将有更多与下图类似的符号。具有相同的"地址"。 这是一个真实的地址还是一个常量值? 是否有地图文件格式的说明?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确的是,虽然链接程序将所有这些符号视为地址,但有些符号实际上表示整数值。 链接程序不知道实际上是整数值的符号与地址的符号之间的区别,因此映射文件中没有区别。 对于任何给定的符号,您需要知道定义源代码的含义,这意味着您需要知道BIOS对该符号的含义。