2021-02-12 09:38 AM
Hello!
Problem is described here https://community.st.com/s/question/0D53W00000YU9O3SAL/loading-object-code-error
I try to find reason of problem by creating new clear project.
I created project in cubeMX 6.1.1, configured SDRAM, LTDC, QSPI, DMA2D
Than I added to H743.SCT this section
LR_EROM1 0x90000000 0x2000000 { ; load region size_region
ER_EROM1 0x90000000 0x2000000 { ; load address = execution address
*.o (ExtFlashSection)
;*.o (TextFlashSection)
*.o (FontFlashSection)
}
}
Keil project downloading and startin without any problems
This project is here https://cloud.mail.ru/public/uUgS/jxTK5fmg1
NEXT STAGE
Than I edit project in TouchGFX editor, add one button, generate code, and build it in KEIL.
Than I download it to flash.
Then starting debug I get error, on this stage
this error
this error is not occured when I delete from H743.sct this code
LR_EROM1 0x90000000 0x2000000 { ; load region size_region
ER_EROM1 0x90000000 0x2000000 { ; load address = execution address
*.o (ExtFlashSection)
;*.o (TextFlashSection)
*.o (FontFlashSection)
}
}
But I need this code for keep pictures in QSPI.
HERE IS MODIFIED PROJECT
https://cloud.mail.ru/public/sw7P/yqm4vR2Wd
Please, anybody, who have H743 board, please, try to download both projects an answer me - what reason of problem?
2021-02-18 05:07 AM
I honestly still believe you may have not set TouchGFX correctly.
You wrote:
As I told you it is not enough to just configure TouchGFX in CubeMX and generate code. You shared only an ioc file which guides me again to this idea. If you look at the application template from the H743 evaluation board you can see for example in TouchGFXHAL.cpp in the /TouchGFX/target folder that there are user code in addition to what is generated. Same thing in the configuration of the QSPI in Core/main.c .
/Romain
2021-02-18 07:15 AM
Memory, Peripherals, Variables, Watches, etc anything that touches the 4GB address space of the processor
2021-02-18 12:32 PM
You wrote
"As I told you it is not enough to just configure TouchGFX in CubeMX and generate code. "
But same actions was enougth for STM32F746. And not enough for STM32H743.... How is it possible?
2021-02-18 12:38 PM
YOu wrote
"TouchGFXHAL.cpp in the /TouchGFX/target folder that there are user code in addition to what is generated. Same thing in the configuration of the QSPI in Core/main.c ."
And here is the QSPI configuration in main. c? Sorry, did you read the topic carefully? The error occurs during code loading, before it is run. At the moment when, for some unknown reason, the memory is accessed, it is the memory and should not be initialized. The question is not why it is not initialized, the question is why it is accessed before initialization.
2021-02-18 12:53 PM
The H7 is significantly more complex, that things works on the F7 is practically irrelevant to solving the problem here.
All instances here it is failing at the download/debug stage not the build stage.
Salient things to post would be the .AXF file, .MAP file, and the .UVOPTX file
What version of Keil MDK is being used? 5.33 is current
What STM32H7 pack is installed?
What version of CubeMX is being used? 6.1.1 is current
Focus on what's physically failing. All the signs point to QSPI, whether its the lack of a loader, or the debugger touching the memory.
2021-02-19 01:36 AM
you added TouchGFX to the topic, i'm looking at the TouchGFX part. I was just commenting on your config and workflow.
I don't have the skills Tesla DeLorean have so I let you guys sort the qspi issue out.
/Romain