|
PebbleOS
|
Placement of code and data in special sections. More...
Macros | |
| #define | PBL_SECTION_RAM |
| Run the function from RAM; also prevents inlining it into flash code. | |
| #define | PBL_SECTION_RAM_RODATA |
| Place the constant in RAM, for tables used by PBL_SECTION_RAM functions. | |
| #define | PBL_UNSORTED_SECTION(name) PBL_SECTION_IMPL(#name) PBL_NO_SANITIZE_ADDRESS |
| Gather the object in a named section, without a linker script. | |
| #define | PBL_UNSORTED_SECTION_START(name) __asm("__start_" #name) |
| Name a declaration after the start of a PBL_UNSORTED_SECTION. | |
| #define | PBL_UNSORTED_SECTION_END(name) __asm("__stop_" #name) |
| Name a declaration after the end of a PBL_UNSORTED_SECTION. | |
Placement of code and data in special sections.
SoCs that need code to run while flash is unavailable select CONFIG_RAMFUNC, which adds a .ramfunc section loaded from flash and copied to RAM at boot. Without it these markers are no-ops and everything stays in flash.
| #define PBL_SECTION_RAM |
Run the function from RAM; also prevents inlining it into flash code.
| #define PBL_SECTION_RAM_RODATA |
Place the constant in RAM, for tables used by PBL_SECTION_RAM functions.
| #define PBL_UNSORTED_SECTION | ( | name | ) | PBL_SECTION_IMPL(#name) PBL_NO_SANITIZE_ADDRESS |
Gather the object in a named section, without a linker script.
For builds linked without the firmware linker script (PBL_NO_LINKER_SCRIPT), where PBL_SECTION is a no-op: the linker collects such a section on its own, in no particular order, and names its bounds PBL_UNSORTED_SECTION_START() and PBL_UNSORTED_SECTION_END(). The objects must be PBL_USED.
| name | Section name, a C identifier of at most 14 characters (Mach-O allows 16). |
| #define PBL_UNSORTED_SECTION_END | ( | name | ) | __asm("__stop_" #name) |
Name a declaration after the end of a PBL_UNSORTED_SECTION.
| #define PBL_UNSORTED_SECTION_START | ( | name | ) | __asm("__start_" #name) |
Name a declaration after the start of a PBL_UNSORTED_SECTION.