Skip to main content
Associate
August 27, 2024
Question

Linker Configuration IAR Setting

  • August 27, 2024
  • 2 replies
  • 2816 views

Gajanan_0-1724736990964.png

Hello,

Getting above error if trying to debug and download code in IAR. is there any specific setting required for loader or linker configuration.

Controller : STM32H745XI 

External flash : MTQL512ABB

 

Please find linker details below: 

 

/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/define symbol __ICFEDIT_intvec_start__ = 0x08000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x081FFFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x2407FFFF;
define symbol __ICFEDIT_region_ITCMRAM_start__ = 0x00000000;
define symbol __ICFEDIT_region_ITCMRAM_end__ = 0x0000FFFF;
define symbol __ICFEDIT_region_QSPI_start__ = 0x90000000;
define symbol __ICFEDIT_region_QSPI_end__ = 0x93FFFFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x200;
define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/


define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region ITCMRAM_region = mem:[from __ICFEDIT_region_ITCMRAM_start__ to __ICFEDIT_region_ITCMRAM_end__];
define region QSPI_region = mem:[from __ICFEDIT_region_QSPI_start__ to __ICFEDIT_region_QSPI_end__];

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

initialize by copy { readwrite };
do not initialize { section .noinit };

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
place at address mem:0x080C0000 { readonly section cm4_all_section };
place in ROM_region { readonly };
place in RAM_region { readwrite,
block CSTACK, block HEAP };

/* Store all runtime images in the QSPI flash section */
place in QSPI_region { section ExtFlashSection };
place in QSPI_region { section TextFlashSection };
place in QSPI_region { section FontFlashSection };

 

 

 

Thanks,

Gajanan

 

2 replies

ST Technical Moderator
August 27, 2024

Hello @Gajanan 

Which IAR version are you using?

Make sure to use the latest IAR version as it contains limitations fixes and enhancement.

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
mƎALLEm
ST Technical Moderator
August 27, 2024

Hello,

As I see I think you are using a custom loader. Are you sure about its implementation? The error doesn't seem to be linked to the linker but to the loader itself.

Try to test it with STM32CubeProgrammer using this method:

https://community.st.com/t5/stm32cubeprogrammer-mcus/how-to-add-external-loader-already-implemented-to/td-p/269689

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.