Я обнаружил раздел (i.function name) в файле карты после завершения сборки.
======================== ==============================
пример)
[foo1.h] / / inline определение и объявление функции
__ forceinline UINT32 func1 (VOID) {...}
[foo2.cpp] // используемая встроенная функция
# include "foo1. h "
UINT32 func2 (VOID) {... func1 (); // Не встроено во время компиляции}
[Файл карты]
foo2.o (.text) относится к foo2.o (i.func1) для func1
================================================== ====
Типичный раздел в файле карты выглядит следующим образом: (.text), (.ARM.exidx), (.data), (.constdata), (.bss), (USER Defined Имя раздела), ...
После нескольких тестов сборки, я думаю, появляется раздел (i.function name), когда функция, которая определяет встроенную, но компилятор не применяет встроенную, создает символ AREA в объектном файле, чтобы сделать вывод линейной версии. И такая функция находится в разделе (i.function name). Если все встроенные функции являются встроенными, отсутствует раздел символов или (i.function name).
Почему встроенная функция, которая не является встроенной, применяется в этом разделе? (Не .text?)
Каково точное значение раздела (i.function name)?
Я просмотрел следующие документы, но не смог получить нужный мне ответ по поводу содержимого.
- Руководство пользователя компилятора ARM, Справочное руководство по компилятору ARM, Руководство пользователя ARM Link, ARM CC Руководство пользователя, ELF для архитектуры ARM