2019-06-06 01:07 AM
Hello. I have problem with linker script.
I have this memory map:
MEMORY
{
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K
ITCMRAM (rw) : ORIGIN = 0x00000000, LENGTH = 16K
DTCMRAM (rw) : ORIGIN = 0x20000000, LENGTH = 128K
SRAM1 (rw) : ORIGIN = 0x20020000, LENGTH = 368K
SRAM2 (rw) : ORIGIN = 0x2007C000, LENGTH = 16K
BKPSRAM (rw) : ORIGIN = 0x40024000, LENGTH = 4K
}
/* Include main link script. Note: it will be searched in -L paths. */
INCLUDE Linker/sections.ld
When I add this line, program crash:
. = ALIGN(4);
_si_itcmram = LOADADDR(.itcmram_code);
.itcmram_code : ALIGN(32)
{
. = ALIGN(32);
_sitcmram = .;
/* NULL */
QUAD(0)
QUAD(0)
QUAD(0)
QUAD(0)
QUAD(0)
QUAD(0)
QUAD(0)
QUAD(0)
/* code */
*(.itcmram_code .itcmram_code.*)
_eitcmram = .;
. = ALIGN(32);
} > ITCMRAM AT>FLASH
any idea, why program fail?
>>>> HardFault Exception <<<<
Fault registers:
SCB->HFSR = 0x40000000
DEBUGEVT = 0
FORCED = 1
VECTTBL = 0
SCB->CFSR = 0x00010000
IACCVIOL = 0
DACCVIOL = 0
MUNSTKERR = 0
MSTKERR = 0
MLSPERR = 0
MMARVALID = 0
IBUSERR = 0
PRECISE E = 0
IMPRECISE = 0
UNSTKERR = 0
STKERR = 0
LSPERR = 0
BFARVALID = 0
UNDEFINSTR= 1
INVSTATE = 0
INVPC = 0
NOCP = 0
UNALIGNED = 0
DIVBYZERO = 0
SCB->DFSR = 0x0000000b
SCB->MMFAR = 0x00000000
SCB->BFAR = 0x00000000
SCB->AFSR = 0x00000000
SCB->ABFSR = 0x00000000
Exception stack frame:
R0 0x0000007e
R1 0x00000044
R2 0x0801c3c6
R3 0x40000000
R12 0x00000001
LR 0x08008063
PC 0x00000040
xPSR 0x81000000
>>> forcing SYSTEM RESET
2019-06-06 03:40 AM
Problem was in startup file: startup_stm32f7x7xx.s
2019-06-18 10:03 AM
Hi @Pilous Droip ,
Could you please explain what was exactly the issue?
Thanks,
Amel
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.