I am building a trivial project for EzKit ADSP-SC589 using CCES 2.1.0 toolchain (gcc & cc21k). The project is in C++. I do not want to use Eclipse IDE to build the project so I am building it using a makefile. I have a single source file (C++) with main() and all it does is puts("Aha"). I build three executables from this source file: one for ARM core, one for SHARC+ core in 8-bit mode, and one for SHARC+ core in 32-bit mode.
I can build the three executables and use custom debug configuration in the IDE to load them onto the EzBoard. I can then run main of the ARM core. It prints the string and stops. So far so good.
Next step, I want to start both SHARC+ cores. So for the main of ARM core I add the following code (i.e. it is #ifdef CORE0):
Again, I build the three executables. I then run main of the ARM core. It prints its string and stops. I am now able to run main of SHARC1 core. When I do, it also prints its string just fine and ends. SHARC0 core is not enabled though.
Since I do not specify any linker placement options and since I do not have an LDF file [*], I suspect executables for both SHARC+ cores may be places at the same address. Since SHARC1 is loaded after SHARC0, I can run SHARC1 fine but not SHARC0.
[*] Also, I do not initialize anything, not MCAPI, not anything else... not in the ARM's main, not in SHARC+s' main.
I looked at LDF as well as at linker options from another (working) tri-core project that was created and built using the IDE. There are tons of memory-related linker settings. I could probably grab the LDF and pass it to the linker when linking my own project using the makefile. However, I would really prefer not to do this. Instead, I would like to specify the minimum settings for my project (either on the cc21k command line or via LFD).
So the question I have is: What are the minimum linker settings I need to specify to build a tri-core C++ project using a makefile?