I am working on image splitting. I want to divide my main embedded image into two-part(core image and application image).
how can we split embedded images into two-part? after the split, it should work on the device.
anyone can suggest documentation or tutorial to learn.
If I understand correctly, you wish to make two separate binary files? The method I would use is to create a scatter loading file with two LOAD regions, one for each binary, and locate the appropriate objects in each. This will produce a single executable (ELF) image, but then fromelf can be used on that to generate separate binaries.
Is that what you wish to achieve, or something more complex?
Actually, I want to divide my application two-part. 1. core file and application
1. core file
which have all core related functionality like process, timer uart, and API definition
2. application files
I will develop an application using API which already defines in the core files, this should compile stand-alone without core file. this image can go in a flash and need to execute with a core file.for example.
my test1.c file is running on the device, I want to add test2.c in this system. I will download test2.c file. after download, test2.c and test1.c should work on a device.
These two processes should not affect each other.
do you understand my application?
I searched this information in a lot of material but I didn't get the right information for it.
I am ready for further explanation
Thanks for the reply..!!
for example.
I developed test1.c and test2.c process.
so test1.c is already in flash and it is working.
now I want to download test2.c in flash. it is will download in flash and should work without any interruption with the test1.c process.
I will compile both *.c file stand alone for the specific addresses of memory.
both will download in the system, it will work standalone.
I hope you will understand my requirement.
please give me any suggestion for it. I am open to more discussion on it.
When linking your 'core' files, generate a symdef file. Then use this when linking your test files so that they know where those components are located.
Your test1 and test2 apps can reside in parallel though you would need to devise a method to manage how both are executed (there is only one program counter...). Are you using an (RTOS) operating system?
You may need to open an 'official' support case with Arm (see the menu above) to discuss in detail.
I am using RTOS.
let me know how will I get support from ARM for it?
The apps and the RTOS are typically linked together to a single binary. The exact details of how tasks are managed varies between RTOS. You should best speak to your RTOS vendor or a forum dedicated to that RTOS.