We have a legacy application running on a dual-core BF561 in which core A is running all the time (collecting images) and core B is normally doing something with those images. Customer wants to be able to change what core B is doing by REPLACING the core B executable with a different, essentially stand-alone application that is already resident in SDRAM. That is, the core B executable stops, loads the replacement application (which is not as big as the legacy app) from SDRAM, and then starts executing that application. This application runs for a while to get some critical information without affecting core A, then we can reboot the whole thing. In one case, the second application rewrites the flash with a new dual-core boot stream, like a field firmware upgrade.
Since the chip is not rebooted to get the second application to run on core B, most of the proffered solutions in the EZ don't apply. I thought I could build a PROM image that runs at a fixed location in L1 and include a (small) loader in the existing legacy application at the high end of L1 that, when called, loads the PROM image into L1 and starts executing it. We are stressed because the customer will not allow more than the most trivial changes to the existing code in order to get the new functionality (they are a defense contractor and the application has to go through extreme qualification testing if we change it; but it is okay to add this "parallel" application since it runs independently of the legacy app). But code space is VERY tight, so we need to build a simple DMA-based loader. Overlays are out because they require a new architecture, as is a new boot loader because the decision when to run the second replacement app is made during operation, not at boot time.
I have not clear on whether I can even get the VisualDSP++ tool chain to make the kind of "ready-to-run" application we need.
Any ideas, references, suggestions?