The environment: CCS4, TMS320F28235
We have a main application, which use DSP/BIOS, running from internal flash.
And we have a small application (boot loader), which does not use DSP/BIOS, running from external flash.
Both of the two applications we've tested and are sure they works.
Both of the two applications have a RS232 service routine, which can receive commands from RS232 port. The difference is that the main application use PRD and software interrupt call the RS232 service routine, the boot loader use the main( ) function , in a infinity loop call the RS232 service routine.
We have a command that tell the existing running application branch to the other application's entry point. In the main application we use this piece of code to do the branch: asm(" LB #0x00298064");
Before we do the branch, in main application all the PRDs are stopped and SWIs are disabled.
The problem is that when the main application received the command and executed the asm(" LB #0x00298064"); the bootloader application can not start to run, instead the F28235 rebooted, and the main application start to run again.
If we run a small application instead of the main application in the internal flash, which doesn't not use the DSP/BIOS, When it received the command and executed the branch, the boot loader in the external flash can start to run.
Are there anybody know what's the possible reason? Are there any know issue that from a DSP/BIOS application branch to a non DSP/BIOS application?
Thanks,
Anna