arch: Put intlist.ld into Cmake
Remove from linker.ld Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
This commit is contained in:
parent
1d3b6e7c9c
commit
c760ca02eb
|
@ -15,6 +15,10 @@ zephyr_sources_ifdef(
|
|||
timing_info_bench.c
|
||||
)
|
||||
|
||||
zephyr_linker_sources_ifdef(CONFIG_GEN_ISR_TABLES
|
||||
SECTIONS
|
||||
isr_tables.ld
|
||||
)
|
||||
|
||||
zephyr_linker_sources_ifdef(CONFIG_ARCH_HAS_RAMFUNC_SUPPORT
|
||||
RAM_SECTIONS
|
||||
|
|
48
arch/common/isr_tables.ld
Normal file
48
arch/common/isr_tables.ld
Normal file
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Copyright (c) 2019 Nordic Semiconductor ASA
|
||||
* Copyright (c) 2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/* Copied from linker.ld */
|
||||
|
||||
/* This creates a special section which is not included by the final binary,
|
||||
* instead it is consumed by the gen_isr_tables.py script.
|
||||
*
|
||||
* What we create here is a data structure:
|
||||
*
|
||||
* struct {
|
||||
* u32_t num_vectors; <- typically CONFIG_NUM_IRQS
|
||||
* struct _isr_list isrs[]; <- Usually of smaller size than num_vectors
|
||||
* }
|
||||
*
|
||||
* Which indicates the memory address of the number of isrs that were
|
||||
* defined, the total number of IRQ lines in the system, followed by
|
||||
* an appropriate number of instances of struct _isr_list. See
|
||||
* include/sw_isr_table.h
|
||||
*
|
||||
* You will need to declare a bogus memory region for IDT_LIST. It doesn't
|
||||
* matter where this region goes as it is stripped from the final ELF image.
|
||||
* The address doesn't even have to be valid on the target. However, it
|
||||
* shouldn't overlap any other regions. On most arches the following should be
|
||||
* fine:
|
||||
*
|
||||
* MEMORY {
|
||||
* .. other regions ..
|
||||
* IDT_LIST : ORIGIN = 0xfffff7ff, LENGTH = 2K
|
||||
* }
|
||||
*/
|
||||
#ifndef LINKER_PASS2
|
||||
SECTION_PROLOGUE(.intList,,)
|
||||
{
|
||||
KEEP(*(.irq_info))
|
||||
KEEP(*(.intList))
|
||||
} GROUP_LINK_IN(IDT_LIST)
|
||||
#else
|
||||
/DISCARD/ :
|
||||
{
|
||||
KEEP(*(.irq_info))
|
||||
KEEP(*(.intList))
|
||||
}
|
||||
#endif
|
|
@ -250,10 +250,6 @@ SECTIONS {
|
|||
*/
|
||||
#include <snippets-sections.ld>
|
||||
|
||||
#ifdef CONFIG_GEN_ISR_TABLES
|
||||
#include <linker/intlist.ld>
|
||||
#endif
|
||||
|
||||
#include <linker/debug-sections.ld>
|
||||
|
||||
|
||||
|
|
|
@ -462,10 +462,6 @@ SECTIONS
|
|||
*/
|
||||
#include <snippets-sections.ld>
|
||||
|
||||
#ifdef CONFIG_GEN_ISR_TABLES
|
||||
#include <linker/intlist.ld>
|
||||
#endif
|
||||
|
||||
#include <linker/debug-sections.ld>
|
||||
|
||||
SECTION_PROLOGUE(.ARM.attributes, 0,)
|
||||
|
|
|
@ -295,10 +295,6 @@ SECTIONS
|
|||
*/
|
||||
#include <snippets-sections.ld>
|
||||
|
||||
#ifdef CONFIG_GEN_ISR_TABLES
|
||||
#include <linker/intlist.ld>
|
||||
#endif
|
||||
|
||||
#include <linker/debug-sections.ld>
|
||||
|
||||
}
|
||||
|
|
|
@ -204,10 +204,6 @@ SECTIONS
|
|||
*/
|
||||
#include <snippets-sections.ld>
|
||||
|
||||
#ifdef CONFIG_GEN_ISR_TABLES
|
||||
#include <linker/intlist.ld>
|
||||
#endif
|
||||
|
||||
GROUP_END(RAMABLE_REGION)
|
||||
|
||||
#include <linker/debug-sections.ld>
|
||||
|
|
Loading…
Reference in a new issue