构建完成后,我在映射文件中找到了(i.function名称)部分。
================================================ ======
ex)
[foo1.h] //内联函数定义和声明
__ forceinline UINT32 func1(VOID){...}
[[foo2.cpp] //使用内联函数
#include“ foo1.h”
UINT32 func2(VOID){...func1(); //编译时非内联}
[[地图文件]
foo2.o(.text)指向func1的foo2.o(i.func1)
================================================ ======
映射文件中的典型部分看起来像:(.text),(。ARM.exidx),(。data),(。constdata),(。bss),(USER Defined Section Name),...] >
经过几次构建测试后,我猜想,当定义内联但编译器未应用内联的函数在目标文件中使AREA符号成为脱机版本时,会出现(i.function name)部分。此类功能位于(i。功能名称)部分中。如果所有内联函数都是内联函数,则没有符号或(i.function名称)部分。
为什么未在该部分中直接应用内联函数?(不是.text?]
(功能名称)部分的确切含义是什么?
我查找了以下文档,但无法获得所需的答案。
构建完成后,我在映射文件中找到了(i.function名称)部分。 ================================================== ==== ex)[foo1.h] //内联函数定义和声明...
当包含标志--split_sections
(see here)时,编译器将为每个函数生成一个部分,这是i.functionName
部分的分配名称。
请注意,由于缺少与共享资源有关的潜在优化,此标志可能会增加代码的大小。