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.

TMS470MF06607: Vector table corrupted, flashing not possible anymore

Part Number: TMS470MF06607
Other Parts Discussed in Thread: UNIFLASH

Hi,

we accidentally overwrote the vector table of our TMS470MF06607. Now it containes invalid data and we are not able to reprogram the controller.
Neither it works with the CCS (using a XDS100v2) nor its possible to erase/flash it using UniFlash 4.5.0.2056.

CCS output:

CortexM3_0: File Loader: Memory write failed: Timed out waiting for target to halt while executing wr_pll.alg

UniFlash output:

[ERROR] CortexM3_0: File Loader: Memory write failed: Timed out waiting for target to halt while executing wr_pll.alg

However, it is still possible to read out the flash memory using UniFlash, showing the corrupt vector table.

How can we fix it?

  • Sorry, I do not know of any way to recover that part.
  • Thx for your reply, but I have to admit that's not the answer I was hoping for.

    Could you please forward my question to one of your technicans/specialists,
    maybe somebody has an idea how to solve this issue.

    Thx in advance, Mirko

  • Hello Mirko,

    I would love to comply with your request. Unfortunately I am the technical specialist for this part.

    I did spend some time trying to reproduce your problem and devise a solution. Since I may not be duplicating your problem exactly, would you please use UniFlash to read bank 0 and then export it as a binary file? Then zip the file and attach it to this thread. I will try to reproduce and resolve your problem (on a board with a socketed device.)

  • Hallo Bob,

    thank you for your effort.

    Here is the attached dump of bank 0.corrupt_vectortable_bank0.zip

  • OK, it does not appear to be as bad as I thought. I programmed in that binary image and was able to then erase the device by switching the RAM and FLASH location, hand entering a minimal "jump to self" program into the RAM, doing a CPU reset and then erasing the flash.

    Use Code Composer Studio to connect to the part. I used CCSv8 with an XDS200. From the menu bar select "Scripts" -> "TMS470MF06607 Memory Switch" -> "Target_RAM_to_0x0". Then "Scripts" -> "TMS470MF06607 Memory Map Setup" -> "CCS_Memory_Map_RAM_at_0x0".  Now open a "Memory Browser" window starting at address 0. You should be able to edit the RAM. Edit the RAM changing the 3 locations in red as shown in the image below:

    Do a CPU reset. Now use CCSv8 to erase the flash. It worked for me. Let me know if it works on your end.

  • Hi Bob,

    that sounds good.

    I just wanted to try your apprach as well but unfortunately there are no scripts in my CCS 8 (8.3.0.00009).

    I searched the installation folders for something similar, but without luck.
    Do I need to install these scripts seperately?

  • Well we finally did it!
    After some fumbling around with the CCS scripting console,
    we found a way to establish a debug connection to the MCU
    and voila the scipts appeared in the Scipts menu.
    Your suggested approach worked like a charm and the device is working again.

    Thx a lot & have a nice day
    Mirko