Hi, I need to set the standard lib memory address. I have the default value of options for target on external memory. Setting the options for some groups I can load startup on internal rom and others in ram I can load and run them in ram and have an image in external flash. The standard libs are put in external flash and this cause me hard fault on printf. Have you a solution? Thanks
Maybe the first message was not so clear. Purpose: Execute code in external ram with exception of startup and system init code executed in internal rom. Code loaded from external flash (EROM). In this way I can configure the bus, then use a memory larger than micro memory to load the code in ram and then the cpu can execute the code from the ram. In the gui I can configure default RO with the EROM, then the startup with IROM and finally ERAM and IRAM with default R/W. Then I can configure startup and system init to be coded in IROM. Result: I reach the result with this scatter file LR_IROM1 0x08000000 0x00200000 { ; load region size_region ER_IROM1 0x08000000 0x00200000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) system_stm32f7xx.o (+RO) startup_stm32f767xx.o (+RO) } }
LR_ROM1 0x64000000 0x01000000 { RW_RAM1 0xC0000000 0x02000000 { ; RW data .ANY (+RW +ZI +RO) } RW_IRAM1 0x20020000 0x00060000 { system_stm32f7xx.o (+ZI +RW) startup_stm32f767xx.o (+ZI +RW) .ANY (+RW +ZI) } } Is it possible to reach the same result with the uVision GUI? Thanks