I'm developing a application to update my firmware using the kinetis blHost.
I'm using the kl27z256, so in my program i have a way to enter in ROM bootloader to update the firmware by the blHost.exe
void (*runBootloader)(void * arg);
// Read the function address from the ROM API tree.
runBootloaderAddress = **(uint32_t **)(0x1c00001c);
runBootloader = (void (*)(void * arg))runBootloaderAddress;
// Start the bootloader.
This call works fine, I get the uc on ROM bootloader, and can execute the update using the commands from CMD on windows10:
blhost.exe -u 0x15a2,0x073 flash-erase-all
blhost.exe -u 0x15a2,0x073 write-memory 0 my_test_program.bin
blhost.exe -u 0x15a2,0x073 reset
I tested the same steps in FRDM-KL27, and got success, my new program (my_test_program.bin version to kl27z64) executes normally.
But on my board using the kl27z256, when i use the command "blhost reset", my new program
(my_test_program.bin version to kl27z256), got stopped after PE_low_level_init(), if I power off and power on the power supply(5V Vcc) to force a reset on my board, the new program works fine.
But I need to jump to program without remove the power supply.
I have enabled:
all this modules are enabled on my firmware. I'm using KDS 3.0.0, with KSDK 1.2.0. and PEx.
Have any step that I forgot to perform?
Have another way to jump from ROM bootloader to my program using the blhost?