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.

TMDSCNCD28069ISO: Flash Locked

Part Number: TMDSCNCD28069ISO
Other Parts Discussed in Thread: C2000WARE, , UNIFLASH

Tool/software:

Hi Team,

From customer: "I decided to import some projects from C2000Ware to test on TMDSCND28069ISO. I went ahead and downloaded the following projects to test.

 

  1. Example_2806xLedBlink – Imported from device_support examples. I compiled and then debugged without any problem.
  2. Example_2806xGpioToggle – Imported from device_support examples. I compiled and then debugged without any problems.
  3. Cla_sincos – Imported from CLAMath library examples and changed configuration to 2806x. I compiled without any problems but failed on debug causing the flash to be locked.
  4. Cla_sqrt – Imported from CLAMath library examples and changed configuration to 2806x. I compiled without any problems but failed on debug causing the flash to be locked.

 

The CLA examples are functions that I need to use. Even though I changed the configuration to 2806x, the code still was in 2805_RAM.  

 

It appears that the CLAMath example code is causing the problem. I don’t want to purchase another board since I only ran TI code and would like to get it replaced. How can I resolve this problem?"

Please let me know if you have any questions as well!

Thank you

  • Hi Surosh,

    Can you explain more what you mean by "failed on debug"? Also have you tried re-flashing the LED blink code that was working beforehand?

    Please also share the C2000ware version you are using.

    Best Regards,

    Delaney

  • Hi Delaney,

    The customer just followed up with this, saying he might have found the problem: "The 2805_RAM configuration writes to 0x37FFFE which is one of the password words for the 28069. I generated a hex file that defined what was written to 0x37FFFE but it did not unlock the flash. Also, the 2805_RAM memory map showed that there were two words at 0x37FFFE rather than just one. If you could have someone confirm what was written by the 2805_RAM configuration to the 28069, I think that I could unlock the flash."

    I will follow up with the version of the C2000ware they are using, as well as your suggestions.

    Thank you,

    Surosh Rashidi

  • Hi Surosh,

    I will look into this and get back to you. Please let me know if they have a response to my suggestions as well.

    Best Regards,

    Delaney

  • Hi Delaney, 

    Have not gotten a response from the customer, was wondering if you had an update on the 2805_RAM question. Please let me know.

    Thank you,

    Surosh Rashidi

  • Hi Surosh,

    Please give me another day to look into this and then I will reply.

    Best Regards,

    Delaney

  • Part Number: TMDSCNCD28069ISO

    Tool/software:

    Hi Team,

    We would like to ask your help with our customer's inquiry below.

    I downloaded the cla_sincos program from ClaMath to test on the control board. It was set at 2805_RAM and when I loaded it to flash it locked the flash since the 2805_RAM memory map wrote to the password section of the 28069. I would like to know exactly what was written to the 28069 password section so I can unlock the flash using UniFlash. Please confirm what was written.

    Regards,

    Danilo

  • Danilo,

    Have the customer try this:

    FFFF FFFF FFFF FFFF FFFF FFFF 0100 8a99 

    There should be LB _c_int00 at these addresses, and this is the decode for that instruction. 

    If this doesn't work, I'll need to find some 055 silicon in order to try and download the example and read out the values.

    Best,

    Matthew

  • Hi Matthew,

    Our customer tried the solution but it didn't work. Please see his feedback below.

    Unfortunately, that did not work. I did look at the startup code in F2805xCodeStarttBranch.asm and found that the startup address contains LB wd_disable rather than LB _c_int00 since WD_DISABLE = 1. See code reference below.
    ***********************************************************************

    WD_DISABLE .set 1 ;set to 1 to disable WD, else set to 0

    .ref _c_int00
    .global code_start

    ***********************************************************************
    * Function: codestart section
    *
    * Description: Branch to code starting point
    ***********************************************************************

    .sect "codestart"

    code_start:
    .if WD_DISABLE == 1
    LB wd_disable ;Branch to watchdog disable code
    .else
    LB _c_int00 ;Branch to start of boot._asm in RTS library
    .endif

    ;end codestart section

    ***********************************************************************
    * Function: wd_disable
    *
    * Description: Disables the watchdog timer
    ***********************************************************************
    .if WD_DISABLE == 1

    .text
    wd_disable:
    SETC OBJMODE ;Set OBJMODE for 28x object code
    EALLOW ;Enable EALLOW protected register access
    MOVZ DP, #7029h>>6 ;Set data page for WDCR register
    MOV @7029h, #0068h ;Set WDDIS bit in WDCR to disable WD
    EDIS ;Disable EALLOW protected register access
    LB _c_int00 ;Branch to start of boot._asm in RTS library

    .endif

    ;end wd_disable

    .end

    If you could get me the bytes for LB wd_disable, I can try that.

    Regards,
    Danilo
  • Hi Delaney,

    Any updates by chance?

    Thank you,

    Surosh Rashidi

  • Let's try,

    FFFF FFFF FFFF FFFF FFFF FFFF 0100 875B

    if this doesn't work, try and swap the two words, i.e. 875B 0100

    Best,

    Matthew

  • Hi Surosh,

    I am looping in other experts to take a look at this since I am going out of office.

    Best Regards,

    Delaney

  • "The 2805_RAM configuration writes to 0x37FFFE which is one of the password words for the 28069.

    The password locations on 2805x AND 280x are located at 0x3F 7FF8-0x3F 7FFE. (not 37 F...) Addresses starting with 0x37 xxxx are not valid.

    These devices are quite old.  Maybe sample a launchpad with a newer device for the customer? 

  • Matthew,

    I tried 0100 875B and 875B 0100 and both did not unlock the device. I did look at the 28x instruction document and saw that the LB instruction might start with 0400 instead of 0100. I tried 0400 and it also did not work.

    Is there a way to see the flash memory from the compiler without using CCS2020 in Debug mode? Also can you get a 28069 control card and duplicate the problem?

    Thanks for your help.

    Dennis

  • Dennis,

    Thanks for trying this, yes I'll locate the appropriate EVM/silicon and get you the correct unlocking value.

    Best,

    Matthew

  • Dennis,

    It should be this: FFFF FFFF FFFF FFFF FFFF FFFF 0040 8B9E

    0040  - is LB as you mention

    8B9E is WD disable code location.

    For future reference there is a way to get the content of the .out file as linear code listing using the dis2000.exe utility located in CCS install path here: 

    C:\ti\ccs1270\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS\bin\

    If you run"dis2000.exe cla_sincos.out" from the command prompt it will show what has been programmed to those last two words of the flash above.

    Just in case customer modified his code at all and above doesn't work. Slight smile

    Lastly, is this the same issue?  TMDSCNCD28069ISO: Flash Locked Can we close that thread as well?

    Best,

    Matthew 

  • Matthew,

    I am out of the country and can not test until next week. I will let you know if I can unlock the memory.

    The other thread you referenced is for the same problem.

    Thanks

    Dennis

  • Thanks Dennis, I've joined the threads to keep everything in the same place.

    Will wait for your return and hopefully this gets things unlocked.

    Best,
    Matthew

  • Matthew,

    I was able to unlock the memory using the variables you gave me.

    Thank you for all your help!

    Dennis