2019-06-12 04:11 AM
Is there any specific address location in generated binary file so we can know the size of that binary file?
Using this, in the firmware to read the size of binary file from that location and use it in our application.
Solved! Go to Solution.
2019-08-05 08:47 AM
I'll really not looking to tutorialize the GNU Linker/Scripts, I'm sure this is all documented, and these aren't novel concepts.
See how your RAM sections use "AT> FLASH" it's how the linker stores initialized content that ends up in RAM to the FLASH memory, so that the code in startup.s can unpack it. The addresses for the symbols describe RAM addresses, the content behind them has to be stored somewhere NON-VOLATILE, and copied there.
Perhaps more importantly consider why you have this initialized data in SDRAM
For a more transparent solution consider using Keil, it manages these initialization sections in tables, and supplies code to automatically unpack or decompress them.
2019-08-05 09:30 AM
Hello @Community member
Thank you very much for your answers and the link.
As I understand I should define the EXTRAM_REGION section as NOLOAD.
Can you please explain if I need to define a section in RAM that should not be initialized at reset time (warm reset: e.g. watchdog, software reset) how should define it in linker file?
Yacob Hassidim.
2019-08-07 11:54 PM
Hello @Community member
I tried the NOLOAD type and it solved the problem of huge size of the binary file (thanks to you)
I am waiting for explanation how to define a section in RAM that should not be initialized at reset time.
Yacob Hassidim.
2019-08-08 06:50 AM
Hello @Community member
I found the NOLOAD also means "not initialized".
See https://mcuoneclipse.com/2014/04/19/gnu-linker-can-you-not-initialize-my-variable/.
Thanks anyway for your support.
Yacob Hassidim.
2019-09-20 08:31 AM
I have the same problem. Any updates/ideas?
2019-09-20 10:06 AM
Start a NEW thread, explain YOUR problem, link to this monster thread if you must.
.BIN files will be huge if you describe memory areas which are massively disparate within the memory map. DON'T DO THAT