We now place the linker directives for the SW ISR table in the common linker scripts, instead of repeating it everywhere. The table will be placed in RAM if dynamic interrupts are enabled. A dedicated section is used, as this data must not move in between build phases. Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
96 lines
2.5 KiB
Plaintext
96 lines
2.5 KiB
Plaintext
#if defined(CONFIG_GEN_ISR_TABLES) && !defined(CONFIG_DYNAMIC_INTERRUPTS)
|
|
SECTION_PROLOGUE(sw_isr_table, (OPTIONAL),)
|
|
{
|
|
*(SW_ISR_TABLE)
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
#endif
|
|
#ifdef CONFIG_CPLUSPLUS
|
|
SECTION_PROLOGUE(_CTOR_SECTION_NAME,,)
|
|
{
|
|
/*
|
|
* The compiler fills the constructor pointers table below,
|
|
* hence symbol __CTOR_LIST__ must be aligned on 4 byte
|
|
* boundary. To align with the C++ standard, the first elment
|
|
* of the array contains the number of actual constructors. The
|
|
* last element is NULL.
|
|
*/
|
|
. = ALIGN(4);
|
|
__CTOR_LIST__ = .;
|
|
LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
|
|
KEEP(*(SORT_BY_NAME(".ctors*")))
|
|
LONG(0)
|
|
__CTOR_END__ = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
SECTION_PROLOGUE(init_array, (OPTIONAL),)
|
|
{
|
|
. = ALIGN(4);
|
|
__init_array_start = .;
|
|
KEEP(*(SORT_BY_NAME(".init_array*")))
|
|
__init_array_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
#endif
|
|
#ifdef CONFIG_USERSPACE
|
|
/* Build-time assignment of permissions to kernel objects to
|
|
* threads declared with K_THREAD_DEFINE()
|
|
*/
|
|
SECTION_PROLOGUE(object_access, (OPTIONAL),)
|
|
{
|
|
__object_access_start = .;
|
|
KEEP(*(".object_access.*"))
|
|
__object_access_end = .;
|
|
}
|
|
#endif
|
|
SECTION_PROLOGUE (devconfig, (OPTIONAL),)
|
|
{
|
|
__devconfig_start = .;
|
|
*(".devconfig.*")
|
|
KEEP(*(SORT_BY_NAME(".devconfig*")))
|
|
__devconfig_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
SECTION_PROLOGUE(net_l2, (OPTIONAL),)
|
|
{
|
|
__net_l2_start = .;
|
|
*(".net_l2.init")
|
|
KEEP(*(SORT_BY_NAME(".net_l2.init*")))
|
|
__net_l2_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
#if defined(CONFIG_BT_SETTINGS)
|
|
SECTION_DATA_PROLOGUE(_bt_settings_area, (OPTIONAL), SUBALIGN(4))
|
|
{
|
|
_bt_settings_start = .;
|
|
KEEP(*(SORT_BY_NAME("._bt_settings.static.*")))
|
|
_bt_settings_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
#endif
|
|
|
|
SECTION_DATA_PROLOGUE(log_const_sections, (OPTIONAL),)
|
|
{
|
|
__log_const_start = .;
|
|
KEEP(*(SORT(.log_const_*)));
|
|
__log_const_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
SECTION_DATA_PROLOGUE(log_backends_sections, (OPTIONAL),)
|
|
{
|
|
__log_backends_start = .;
|
|
KEEP(*(".log_backends"));
|
|
__log_backends_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
SECTION_DATA_PROLOGUE(shell_root_cmds_sections, (OPTIONAL),)
|
|
{
|
|
__shell_root_cmds_start = .;
|
|
KEEP(*(SORT(.shell_root_cmd_*)));
|
|
__shell_root_cmds_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|
|
|
|
SECTION_DATA_PROLOGUE(font_entry_sections, (OPTIONAL),)
|
|
{
|
|
__font_entry_start = .;
|
|
KEEP(*(SORT_BY_NAME(".font_entry.*")))
|
|
__font_entry_end = .;
|
|
} GROUP_LINK_IN(ROMABLE_REGION)
|