This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Rerun program without "reset".

hello, everbody~

DM648, using ROM to boot. Fast boot. DSP\BIOS.

I use C code to reload new firmware to flash and reboot without power restart.

It is OK if I use old firmware as new (the same firmware is reloaded).

But if firmware is changed process is stuck in the custom routine Init_my_device() of BIOS.

Steps.

  1. Read and load new firmware to flash instead of running one.
  2. Close all my threads (I have 3 now).
  3. From Idle_loop routine read “my” boot loader from flash, pars it to RAM, clean all cashes and start it from its c_int00.

Boot loader reads new firmware from flash, parses it to DDR and runs it from its c_int00.

I guess memory distribution is changed but I didn’t update some registers.

Can you help what I missed ?.

Tips.

This staf works with "reset" perfectly.

If I read “my” boot loader and  … from one of my threads it is OK more often then failed.

If I read “my” boot loader and  … from Idle_loop it is failed allways.