19#ifndef ZEPHYR_INCLUDE_LINKER_LINKER_DEFS_H_ 
   20#define ZEPHYR_INCLUDE_LINKER_LINKER_DEFS_H_ 
   34#define DT_NODE_HAS_STATUS(node, status) 0 
   46#define CREATE_OBJ_LEVEL(object, level)                         \ 
   47                __##object##_##level##_start = .;               \ 
   48                KEEP(*(SORT(.z_##object##_##level?_*)));        \ 
   49                KEEP(*(SORT(.z_##object##_##level??_*))); 
   56#elif defined(_ASMLANGUAGE) 
   62GDATA(__data_region_load_start)
 
   63GDATA(__data_region_start)
 
   64GDATA(__data_region_num_words)
 
   81extern char _app_smem_start[];
 
   82extern char _app_smem_end[];
 
   83extern char _app_smem_size[];
 
   84extern char _app_smem_rom_start[];
 
   85extern char _app_smem_num_words[];
 
   87#ifdef CONFIG_LINKER_USE_PINNED_SECTION 
   88extern char _app_smem_pinned_start[];
 
   89extern char _app_smem_pinned_end[];
 
   90extern char _app_smem_pinned_size[];
 
   91extern char _app_smem_pinned_num_words[];
 
  104extern char __kernel_ram_start[];
 
  105extern char __kernel_ram_end[];
 
  106extern char __kernel_ram_size[];
 
  109extern char __bss_start[];
 
  110extern char __bss_end[];
 
  114extern char __data_region_load_start[];
 
  115extern char __data_region_start[];
 
  116extern char __data_region_end[];
 
  121extern char z_mapped_start[];
 
  122extern char z_mapped_end[];
 
  126extern char __rom_region_start[];
 
  127extern char __rom_region_end[];
 
  128extern char __rom_region_size[];
 
  131extern char _flash_used[];
 
  134extern char _image_ram_start[];
 
  135extern char _image_ram_end[];
 
  137extern char __text_region_start[];
 
  138extern char __text_region_end[];
 
  139extern char __text_region_size[];
 
  141extern char __rodata_region_start[];
 
  142extern char __rodata_region_end[];
 
  143extern char __rodata_region_size[];
 
  145extern char _vector_start[];
 
  146extern char _vector_end[];
 
  148#ifdef CONFIG_SW_VECTOR_RELAY 
  149extern char __vector_relay_table[];
 
  152#ifdef CONFIG_COVERAGE_GCOV 
  153extern char __gcov_bss_start[];
 
  154extern char __gcov_bss_end[];
 
  155extern char __gcov_bss_size[];
 
  161#if DT_NODE_HAS_STATUS(DT_CHOSEN(zephyr_ccm), okay) 
  162extern char __ccm_data_rom_start[];
 
  163extern char __ccm_start[];
 
  164extern char __ccm_data_start[];
 
  165extern char __ccm_data_end[];
 
  166extern char __ccm_bss_start[];
 
  167extern char __ccm_bss_end[];
 
  168extern char __ccm_noinit_start[];
 
  169extern char __ccm_noinit_end[];
 
  170extern char __ccm_end[];
 
  173#if DT_NODE_HAS_STATUS(DT_CHOSEN(zephyr_itcm), okay) 
  174extern char __itcm_start[];
 
  175extern char __itcm_end[];
 
  176extern char __itcm_size[];
 
  177extern char __itcm_load_start[];
 
  180#if DT_NODE_HAS_STATUS(DT_CHOSEN(zephyr_dtcm), okay) 
  181extern char __dtcm_data_start[];
 
  182extern char __dtcm_data_end[];
 
  183extern char __dtcm_bss_start[];
 
  184extern char __dtcm_bss_end[];
 
  185extern char __dtcm_noinit_start[];
 
  186extern char __dtcm_noinit_end[];
 
  187extern char __dtcm_data_load_start[];
 
  188extern char __dtcm_start[];
 
  189extern char __dtcm_end[];
 
  192#if DT_NODE_HAS_STATUS(DT_CHOSEN(zephyr_ocm), okay) 
  193extern char __ocm_data_start[];
 
  194extern char __ocm_data_end[];
 
  195extern char __ocm_bss_start[];
 
  196extern char __ocm_bss_end[];
 
  197extern char __ocm_start[];
 
  198extern char __ocm_end[];
 
  199extern char __ocm_size[];
 
  205#ifdef CONFIG_ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS 
  206extern char __sg_start[];
 
  207extern char __sg_end[];
 
  208extern char __sg_size[];
 
  219#ifdef CONFIG_NOCACHE_MEMORY 
  220extern char _nocache_ram_start[];
 
  221extern char _nocache_ram_end[];
 
  222extern char _nocache_ram_size[];
 
  231#ifdef CONFIG_ARCH_HAS_RAMFUNC_SUPPORT 
  232extern char __ramfunc_start[];
 
  233extern char __ramfunc_end[];
 
  234extern char __ramfunc_size[];
 
  235extern char __ramfunc_load_start[];
 
  244#ifdef CONFIG_USERSPACE 
  245extern char z_priv_stacks_ram_start[];
 
  246extern char z_priv_stacks_ram_end[];
 
  247extern char z_user_stacks_start[];
 
  248extern char z_user_stacks_end[];
 
  249extern char z_kobject_data_begin[];
 
  252#ifdef CONFIG_THREAD_LOCAL_STORAGE 
  253extern char __tdata_start[];
 
  254extern char __tdata_end[];
 
  255extern char __tdata_size[];
 
  256extern char __tdata_align[];
 
  257extern char __tbss_start[];
 
  258extern char __tbss_end[];
 
  259extern char __tbss_size[];
 
  260extern char __tbss_align[];
 
  261extern char __tls_start[];
 
  262extern char __tls_end[];
 
  263extern char __tls_size[];
 
  266#ifdef CONFIG_LINKER_USE_BOOT_SECTION 
  270extern char lnkr_boot_start[];
 
  271extern char lnkr_boot_end[];
 
  273extern char lnkr_boot_text_start[];
 
  274extern char lnkr_boot_text_end[];
 
  275extern char lnkr_boot_text_size[];
 
  276extern char lnkr_boot_data_start[];
 
  277extern char lnkr_boot_data_end[];
 
  278extern char lnkr_boot_data_size[];
 
  279extern char lnkr_boot_rodata_start[];
 
  280extern char lnkr_boot_rodata_end[];
 
  281extern char lnkr_boot_rodata_size[];
 
  282extern char lnkr_boot_bss_start[];
 
  283extern char lnkr_boot_bss_end[];
 
  284extern char lnkr_boot_bss_size[];
 
  285extern char lnkr_boot_noinit_start[];
 
  286extern char lnkr_boot_noinit_end[];
 
  287extern char lnkr_boot_noinit_size[];
 
  290#ifdef CONFIG_LINKER_USE_PINNED_SECTION 
  296extern char lnkr_pinned_start[];
 
  297extern char lnkr_pinned_end[];
 
  299extern char lnkr_pinned_text_start[];
 
  300extern char lnkr_pinned_text_end[];
 
  301extern char lnkr_pinned_text_size[];
 
  302extern char lnkr_pinned_data_start[];
 
  303extern char lnkr_pinned_data_end[];
 
  304extern char lnkr_pinned_data_size[];
 
  305extern char lnkr_pinned_rodata_start[];
 
  306extern char lnkr_pinned_rodata_end[];
 
  307extern char lnkr_pinned_rodata_size[];
 
  308extern char lnkr_pinned_bss_start[];
 
  309extern char lnkr_pinned_bss_end[];
 
  310extern char lnkr_pinned_bss_size[];
 
  311extern char lnkr_pinned_noinit_start[];
 
  312extern char lnkr_pinned_noinit_end[];
 
  313extern char lnkr_pinned_noinit_size[];
 
  316static inline bool lnkr_is_pinned(
uint8_t *addr)
 
  318        if ((addr >= (
uint8_t *)lnkr_pinned_start) &&
 
  319            (addr < (
uint8_t *)lnkr_pinned_end)) {
 
  327static inline bool lnkr_is_region_pinned(
uint8_t *addr, 
size_t sz)
 
  329        if ((addr >= (
uint8_t *)lnkr_pinned_start) &&
 
  330            ((addr + sz) < (
uint8_t *)lnkr_pinned_end)) {
 
Common toolchain abstraction.
 
Definitions of various linker Sections.
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88