如何将指针分配给使用 GCC 编译后添加的自定义部分?
How do I assign a pointer to a custom section that is added after compilation with GCC?
我正在使用 GCC 并为 STM32 编写嵌入式软件。
如何阅读添加了 --add-section
的部分?
我想在 elf
中添加一个部分,并在我的程序中分配一个指向该部分数据的指针。
例如:
extern char * ptr_to_my_section = &my_array;
然后我会编译一个文件my_data.cpp
并将其注入特定的部分my_section
。
my_data.cpp
char my_array[] = "This is the custom data";
最后我将创建二进制可执行文件。
Then I will compile a file my_data.cpp and inject it into a specific section my_section.
您不需要为此使用objcopy --add-section
。您可以简单地要求 GCC 使用 __attribute__((section("my_section")))
.
将您的数组放入 my_section
要找到本节的开头,您可以使用链接器“神奇地”为您添加的 {__start,__end}
符号:
const char *ptr_to_my_section = &__start_my_section;
const char *end_my_section = &__stop_my_section;
我正在使用 GCC 并为 STM32 编写嵌入式软件。
如何阅读添加了 --add-section
的部分?
我想在 elf
中添加一个部分,并在我的程序中分配一个指向该部分数据的指针。
例如:
extern char * ptr_to_my_section = &my_array;
然后我会编译一个文件my_data.cpp
并将其注入特定的部分my_section
。
my_data.cpp
char my_array[] = "This is the custom data";
最后我将创建二进制可执行文件。
Then I will compile a file my_data.cpp and inject it into a specific section my_section.
您不需要为此使用objcopy --add-section
。您可以简单地要求 GCC 使用 __attribute__((section("my_section")))
.
my_section
要找到本节的开头,您可以使用链接器“神奇地”为您添加的 {__start,__end}
符号:
const char *ptr_to_my_section = &__start_my_section;
const char *end_my_section = &__stop_my_section;