This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Fatal Error[Lp049]: there was no reference to __iar_data_init3, but it is needed to initialize section .bss (OS_Global.o(os7m_tlv_d_837070.a) #8)

Hello, 

I'm developing a project on IAR Embedded Workbench IDE - arm 8.40.2 that uses EmbOS (embOS_CortexM_IAR_V8_V5061) on a NXP IMXRT1062xxx5A board. 

My configuration linker file is the following:

/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_4.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_IROM1_start__ = 0x00000000;
define symbol __ICFEDIT_region_IROM1_end__   = 0x0001FFFF;
define symbol __ICFEDIT_region_IROM2_start__ = 0x0;
define symbol __ICFEDIT_region_IROM2_end__   = 0x0;
define symbol __ICFEDIT_region_EROM1_start__ = 0x60000000;
define symbol __ICFEDIT_region_EROM1_end__   = 0x7EFFFFFF;
define symbol __ICFEDIT_region_EROM2_start__ = 0x0;
define symbol __ICFEDIT_region_EROM2_end__   = 0x0;
define symbol __ICFEDIT_region_EROM3_start__ = 0x0;
define symbol __ICFEDIT_region_EROM3_end__   = 0x0;
define symbol __ICFEDIT_region_IRAM1_start__ = 0x20000000;
define symbol __ICFEDIT_region_IRAM1_end__   = 0x2001FFFF;
define symbol __ICFEDIT_region_IRAM2_start__ = 0x20200000;
define symbol __ICFEDIT_region_IRAM2_end__   = 0x2023FFFF;
define symbol __ICFEDIT_region_ERAM1_start__ = 0x0;
define symbol __ICFEDIT_region_ERAM1_end__   = 0x0;
define symbol __ICFEDIT_region_ERAM2_start__ = 0x0;
define symbol __ICFEDIT_region_ERAM2_end__   = 0x0;
define symbol __ICFEDIT_region_ERAM3_start__ = 0x0;
define symbol __ICFEDIT_region_ERAM3_end__   = 0x0;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__     = 0x2000;
define symbol __ICFEDIT_size_proc_stack__ = 0x0;
define symbol __ICFEDIT_size_heap__       = 0x8000;
/**** End of ICF editor section. ###ICF###*/



define memory mem with size = 4G;
define region IROM_region     =   mem:[from __ICFEDIT_region_IROM1_start__ to __ICFEDIT_region_IROM1_end__]
                                | mem:[from __ICFEDIT_region_IROM2_start__ to __ICFEDIT_region_IROM2_end__];
define region EROM_region     =   mem:[from __ICFEDIT_region_EROM1_start__ to __ICFEDIT_region_EROM1_end__]
                                | mem:[from __ICFEDIT_region_EROM2_start__ to __ICFEDIT_region_EROM2_end__]
                                | mem:[from __ICFEDIT_region_EROM3_start__ to __ICFEDIT_region_EROM3_end__];
define region IRAM_region     =   mem:[from __ICFEDIT_region_IRAM1_start__ to __ICFEDIT_region_IRAM1_end__]
                                | mem:[from __ICFEDIT_region_IRAM2_start__ to __ICFEDIT_region_IRAM2_end__];
define region ERAM_region     =   mem:[from __ICFEDIT_region_ERAM1_start__ to __ICFEDIT_region_ERAM1_end__]
                                | mem:[from __ICFEDIT_region_ERAM2_start__ to __ICFEDIT_region_ERAM2_end__]
                                | mem:[from __ICFEDIT_region_ERAM3_start__ to __ICFEDIT_region_ERAM3_end__];

define block CSTACK     with alignment = 8, size = __ICFEDIT_size_cstack__     { };
define block PROC_STACK with alignment = 8, size = __ICFEDIT_size_proc_stack__ { };
define block HEAP       with alignment = 8, size = __ICFEDIT_size_heap__       { };



do not initialize { section .noinit };
do not initialize { readwrite };
do not initialize { zeroinit };

if (isdefinedsymbol(__USE_DLIB_PERTHREAD))
{
  // Required in a multi-threaded application
  initialize by copy with packing = none { section __DLIB_PERTHREAD };
}

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

place in IROM_region  { readonly };
place in EROM_region  { readonly section application_specific_ro };
place in IRAM_region  { readwrite, block CSTACK, block PROC_STACK, block HEAP  };
place in ERAM_region  { readwrite section application_specific_rw };

When I try to compile the project I get the following error : Fatal Error[Lp049]: there was no reference to __iar_data_init3, but it is needed to initialize section .bss (OS_Global.o(os7m_tlv_d_837070.a) #8) .

I tried to look online for fixes but non of them seems to work.

Does anybody can help me please? 

Parents
  • The Arm architecture is supported by a huge array of development tools and software stacks from a large and mature tools ecosystem. As a developer for software destined for an Arm-based device, the choice variety and value you face in development tools is enormous! Unfortunately however, at Arm we can't really comment on, or provide support for, development tools and software stacks produced by external tools providers. In this case it looks like you're using a development IDE and software stack from IAR, so I would suggest approaching IAR for support.

    Alternatively, have you considered our own MDK development suite? We think you'll love it! 

Reply
  • The Arm architecture is supported by a huge array of development tools and software stacks from a large and mature tools ecosystem. As a developer for software destined for an Arm-based device, the choice variety and value you face in development tools is enormous! Unfortunately however, at Arm we can't really comment on, or provide support for, development tools and software stacks produced by external tools providers. In this case it looks like you're using a development IDE and software stack from IAR, so I would suggest approaching IAR for support.

    Alternatively, have you considered our own MDK development suite? We think you'll love it! 

Children