Hi,
I am using S32 design studio IDE for development of MPU5748G and want to flash multiple binaries with application binary.
1. What are the possible ways to do it?
2. I also wants to persist second binary on flash (no need to flash every time with application binary) then what are steps which needs to follow?
Regards,
Rajani Sureja
Solved! Go to Solution.
FYI: I've created a HOWTO document based on your post:
https://community.nxp.com/docs/DOC-342826
Thanks for your interesting question!
Stan
Hi Rajani,
1) Probably the easiest way to program multiple binary file is described here:
HOWTO: Debug multiple elf files in S32 Design Studio
There is a section about loading additional files which could be elf, motorola srec or intel hex.
2)If you use Pemicro/OpenSDA debug interface there is "Non-Volatile Memory Preservation" panel under "Advanced Options" dialog for this purpose.
Please check the post below for more details:
https://community.nxp.com/message/878045
Hope it helps.
Stan
Hi Sliva,
Thank you so much for reply.
I also want to add additionally .bin data file in MPC5748G Flash NVM Block location "0x00F90000". So, Can you please suggest How can I add .bin file?
Regards,
Rajani Sureja
FYI: I've created a HOWTO document based on your post:
https://community.nxp.com/docs/DOC-342826
Thanks for your interesting question!
Stan
I'd suggest to link the binary data with your application.
First copy the binary file to your project folder (e.g. root project folder within workspace)
Edit the linker file (.ld) and enter the binary file commands behind the MEMORY Section.
In the SECTIONS please specify where to place the binary file (in the example below it is placed at the end of .text section). You can specify your own section if you need to place the binary file at a specific address.
/* Specify the memory areas */
MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000410, LENGTH = 0x0007FBF0
/* SRAM_L */
m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000
/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000
}
TARGET(binary) /* specify the file format of binary file */
INPUT (..\test.bin) /* provide the file name (located in the project root folder)*/
OUTPUT_FORMAT(default) /* restore the out file format */
/* Define output sections */
SECTIONS
{
/* The startup code goes first into internal flash */
.interrupts :
{
__VECTOR_TABLE = .;
...
.text :
{
. = ALIGN(4);
*(.text) /* .text sections (code) */
*(.text*) /* .text* sections (code) */
*(.rodata) /* .rodata sections (constants, strings, etc.) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
*(.glue_7) /* glue arm to thumb code */
*(.glue_7t) /* glue thumb to arm code */
*(.eh_frame)
KEEP (*(.init))
KEEP (*(.fini))
. = ALIGN(4);
..\test.bin /* link the binary file here */
} > m_text
...
NOTE:
Linker creates automatic symbols with start and end address for the binary data which you can reference in your code. Check the map file output:
*(.glue_7t)
.glue_7t 0x0000080c 0x0 linker stubs
*(.eh_frame)
*(.init)
*(.fini)
0x0000080c . = ALIGN (0x4)
..\test.bin()
.data 0x0000080c 0x48 ..\test.bin
0x0000080c _binary____test_bin_start
0x00000854 _binary____test_bin_end
.vfp11_veneer 0x00000854 0x0
.vfp11_veneer 0x00000854 0x0 linker stubs
.v4_bx 0x00000854 0x0
...
Hope it helps.
Stan