cancel
Showing results for 
Search instead for 
Did you mean: 

Compiler not generate external flash code

PZamb.2
Associate III

Hi

I have a problem with stm32cube ide non use externale flash when compile.

I have similar design with the same configuration ad work fine.

Where can be the problem?

ENTRY(Reset_Handler)

/* Highest address of the user mode stack */

_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */

_Min_Heap_Size = 0x200; /* required amount of heap */

_Min_Stack_Size = 0x400; /* required amount of stack */

/* Memories definition */

MEMORY

{

 RAM   (xrw)   : ORIGIN = 0x20000000,  LENGTH = 512K

 FLASH   (rx)   : ORIGIN = 0x8000000,  LENGTH = 2048K

 SDRAM  (xrw) : ORIGIN = 0xC0000000, LENGTH = 16M

 QUADSPI (r)   : ORIGIN = 0x90000000, LENGTH = 128M

}

/* Sections */

SECTIONS

{

 /* The startup code into "FLASH" Rom type memory */

 .isr_vector :

 {

   . = ALIGN(4);

   KEEP(*(.isr_vector)) /* Startup code */

   . = ALIGN(4);

 } >FLASH

 /* The program code and other data into "FLASH" Rom type memory */

 .text :

 {

   . = ALIGN(4);

   *(.text)          /* .text sections (code) */

   *(.text*)         /* .text* sections (code) */

   *(.glue_7)        /* glue arm to thumb code */

   *(.glue_7t)       /* glue thumb to arm code */

   *(.eh_frame)

   KEEP (*(.init))

   KEEP (*(.fini))

   . = ALIGN(4);

   _etext = .;       /* define a global symbols at end of code */

 } >FLASH

 /* Constant data into "FLASH" Rom type memory */

 .rodata :

 {

   . = ALIGN(4);

   *(.rodata)        /* .rodata sections (constants, strings, etc.) */

   *(.rodata*)       /* .rodata* sections (constants, strings, etc.) */

   . = ALIGN(4);

 } >FLASH

 .ARM.extab  : {

   . = ALIGN(4);

   *(.ARM.extab* .gnu.linkonce.armextab.*)

   . = ALIGN(4);

 } >FLASH

 .ARM : {

   . = ALIGN(4);

   __exidx_start = .;

   *(.ARM.exidx*)

   __exidx_end = .;

   . = ALIGN(4);

 } >FLASH

 .preinit_array    :

 {

   . = ALIGN(4);

   PROVIDE_HIDDEN (__preinit_array_start = .);

   KEEP (*(.preinit_array*))

   PROVIDE_HIDDEN (__preinit_array_end = .);

   . = ALIGN(4);

 } >FLASH

 .init_array :

 {

   . = ALIGN(4);

   PROVIDE_HIDDEN (__init_array_start = .);

   KEEP (*(SORT(.init_array.*)))

   KEEP (*(.init_array*))

   PROVIDE_HIDDEN (__init_array_end = .);

   . = ALIGN(4);

 } >FLASH

 .fini_array :

 {

   . = ALIGN(4);

   PROVIDE_HIDDEN (__fini_array_start = .);

   KEEP (*(SORT(.fini_array.*)))

   KEEP (*(.fini_array*))

   PROVIDE_HIDDEN (__fini_array_end = .);

   . = ALIGN(4);

 } >FLASH

 /* Used by the startup to initialize data */

 _sidata = LOADADDR(.data);

 /* Initialized data sections into "RAM" Ram type memory */

 .data :

 {

   . = ALIGN(4);

   _sdata = .;       /* create a global symbol at data start */

   *(.data)          /* .data sections */

   *(.data*)         /* .data* sections */

   *(.RamFunc)       /* .RamFunc sections */

   *(.RamFunc*)      /* .RamFunc* sections */

   . = ALIGN(4);

   _edata = .;       /* define a global symbol at data end */

 } >RAM AT> FLASH

 /* Uninitialized data section into "RAM" Ram type memory */

 . = ALIGN(4);

 .bss :

 {

   /* This is used by the startup in order to initialize the .bss section */

   _sbss = .;        /* define a global symbol at bss start */

   __bss_start__ = _sbss;

   *(.bss)

   *(.bss*)

   *(COMMON)

   . = ALIGN(4);

   _ebss = .;        /* define a global symbol at bss end */

   __bss_end__ = _ebss;

 } >RAM

 /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */

 ._user_heap_stack :

 {

   . = ALIGN(8);

   PROVIDE ( end = . );

   PROVIDE ( _end = . );

   . = . + _Min_Heap_Size;

   . = . + _Min_Stack_Size;

   . = ALIGN(8);

 } >RAM

 /* Remove information from the compiler libraries */

 /DISCARD/ :

 {

   libc.a ( * )

   libm.a ( * )

   libgcc.a ( * )

 }

 .ARM.attributes 0 : { *(.ARM.attributes) }

   BufferSection (NOLOAD) :

 {

   *(Video_RGB_Buffer Video_RGB_Buffer.*)

   *(.gnu.linkonce.r.*)

   . = ALIGN(0x4);

    *(TouchGFX_Framebuffer TouchGFX_Framebuffer.*)

   *(.gnu.linkonce.r.*)

   . = ALIGN(0x4);

 } >SDRAM

 ExtFlashSection :

   {

      *(ExtFlashSection ExtFlashSection.*)

      *(.gnu.linkonce.r.*)

       . = ALIGN(0x4);

   } >QUADSPI

 FontFlashSection :

   {

      *(FontFlashSection FontFlashSection.*)

      *(.gnu.linkonce.r.*)

       . = ALIGN(0x4);

   } >QUADSPI

 TextFlashSection :

   {

      *(TextFlashSection TextFlashSection.*)

      *(.gnu.linkonce.r.*)

       . = ALIGN(0x4);

   } >QUADSPI

}

0 REPLIES 0