I’ve developed a Loader tool (ldr file) for my ADSP-BF537 EZ-KIT.
The start address of Loader code is 0xFFA00000.
Using LdrViewer tool I send the Loader to Blackfin.
After that Loader activates CLI and XMODEM Receiver.
Using appropriate CLI command I can send my own Boot code
to Loader to save it on flash. Because Boot program is linked
for 0x20000000 address it works fine after switching to BMODE=000 and resetting.
But when I change the Boot program start address to 0x00080000 (SDRAM)
to run it in memory by calling from Loader after uploading the Boot program
cannot be executed though Loader receives the Boot code and keeps them
memory starting 0x00080000.
The Boot code entry point can be called like mentioned in EE-239:
void (*program)(void) = (void (*)(void))(BOOT_START_ADDR);
This code works fine for flash version of Boot when BOOT_START_ADDR is 0x20000000
but hangs for in-memory version (BOOT_START_ADDR is 0x00080000).
Changing the Boot program section by Instruction Bank B SRAM (0xFFA08000 - 0xFFA0BFFF)
have not solved the problem
I guess the similar code is present in adsp-bf537-rom-v03.asm (Boot ROM for the Blackfin)
for UART slave mode (BMODE=111) but Loader need to run uploaded program and return to
How can I fix this issue?
The only difference between flash and in-memory versions of Boot is the start address.