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.

TMS320F280033: Modify flash entry point address for F280033

Part Number: TMS320F280033

Hi Champ,

I am asking for my customer. A follow-up on this post

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1349413/tms320f280033-flashed-code-not-running-after-cpu-reset-or-power-cycle

In the post, it was answered to an detailed way to modify the registers for boot and the flash entry point.

To make it easier for user, we should able to modify flash entry point address for F280033 with DCSM as below setup then program the OTP, right ? To get the same result from above post. Also, the correct .cmd for F280033 is needed as well here.

Customer's HW GPIO24 & GPIO32 are designed pull up directly.

BTW, the checkbox for Zone 1 LINKPOINTER + Zone Select block is checked, while nothing is modified in there.

(1). That's all I need, right ? Anything else is needed ?

(2). Since GPIO24 & GPIO32 are pull-up in HW, I could leave the other three BOOTDEFx (x=0~2) there, right ?

Thanks for the support.

Regards,

Johnny

  • Hi Champ,

    We tested as above setup. However, pressing the programming button to modify the entry point of F280033, when the screen shows that Erase flash, then it is stuck and shows below error message in console. 

     

    C28xx_CPU1: GEL Output: 
    
    RAM initialization done
    
    C28xx_CPU1: GEL Output: 
    Memory Map Initialization Complete
    C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
    C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
    C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
    C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
    C28xx_CPU1: GEL Output: ... DCSM Initialization Start ... 
    C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
    C28xx_CPU1: Error: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Trouble Halting Target CPU: (Error -1156 @ 0x0) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Error: (Error -1156 @ 0x0) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Error: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Trouble Halting Target CPU: (Error -1156 @ 0x0) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Error: (Error -1156 @ 0x800) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Trouble Halting Target CPU: (Error -1156 @ 0x0) Device may be operating in low-power mode. Do you want to bring it out of this mode? Choose 'Yes' to force the device to wake up and retry the operation. Choose 'No' to retry the operation without waking the device. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Trouble Halting Target CPU: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 20.0.0.3178) 
    C28xx_CPU1: Unable to determine target status after 20 attempts
    C28xx_CPU1: Failed to remove the debug state from the target before disconnecting.  There may still be breakpoint op-codes embedded in program memory.  It is recommended that you reset the emulator before you connect and reload your program before you continue debugging
    C28xx_CPU1: 1 other operation(s) were automatically canceled as a result 
    C28xx_CPU1: Error occurred during flash operation: Earlier errors prevented writing 0x00000064@Data
    C28xx_CPU1: Error occurred during flash operation: Could not read 0x000136@Program: target is not connected
    C28xx_CPU1: Error occurred during flash operation: Could not read 0x00012C@Program: target is not connected
    C28xx_CPU1: Flash Programmer: Error erasing Bank 0 FMSTAT (STATCMD on some devices) value = 0. Operation Cancelled (0).
    C28xx_CPU1: File Loader: Memory write failed: Unknown error
    C28xx_CPU1: GEL: File: C:\Users\114174\workspace_DCSM\dcsm_security_tool\CPU1_RAM\dcsm_security_tool.out: Load failed.
    C28xx_CPU1: Error occurred during flash operation: Could not read register PC: target is not connected
    C28xx_CPU1: Error occurred during flash operation: Could not write register PC: target is not connected
    C28xx_CPU1: Error occurred during flash operation: Could not write 0x000000@Program: target is not connected
    C28xx_CPU1: Error occurred during flash operation: Cannot enable while the target is disconnected
    C28xx_CPU1: Error occurred during flash operation: Could not read 0x00000064@Data: target is not connected
    C28xx_CPU1: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected
    C28xx_CPU1: Error occurred during flash operation: Failed to run target while trying to execute pwrite_dis.alg
    C28xx_CPU1: Flash operation timed out waiting for the algorithm to complete. Operation cancelled.
    C28xx_CPU1: Perform a debugger reset and execute the Boot-ROM code (click on the RESUME button in CCS debug window) before erasing/loading the Flash.  If that does not help to perform a successful Flash erase/load, check the Reset cause (RESC) register, NMI shadow flag (NMISHDFLG) register and the Boot-ROM status register for further debug.
    C28xx_CPU1: Error occurred during flash operation: Could not write 0x00000064@Data: target is not connected

    The console shows target is not connected. I believe the error is not related to the wrong dcsm setup, right ?

    Could the expert kindly reconfirm above dcsm setup for F280033 ? Besides, in the dcsm example, using F280033 cmd file isn't needed here, right ? 

    Thanks for the support.

    Regards,

    Johnny

  • Hello,

    If possible, I would put the device in wait boot before connecting to the device with JTAG and programming. 

    The reason why is since the device is configured for boot to flash (at 0x80000, which is not valid in the F280033 memory map), the device will constantly boot into invalid memory, hit an ITRAP, potentially reset, and disrupt the JTAG connection as they're observing.

    (1). That's all I need, right ? Anything else is needed ?

    Yes, these settings look good. I would also include Wait boot as a boot option as Matt P. also did in the linked thread. This allows the customer to connect to the device using their debugger without any possible contention from the application in flash. 

    Best,
    Matt 

  • Hi Matt,

    Thanks for your response.

    If possible, I would put the device in wait boot before connecting to the device with JTAG and programming. 

    #Step 1 - So that I should have GPIO24 pull low and GPIO32 pull high in the hardware first, to force the device in wait boot then programming the DCSM for a brand new device.

    #Step 2 - Once the DCSM for modifying the BOOTDEF3 and BOOTDEF1 are done (below setup), then change back the HW of GPIO24 and GPIO32 to pull high again (no switch there in HW), and finally program user's code, right ? Or I could still leave the GPIO24 pull low and GPIO32 pull high in step #1, then directly program user’s code ?

    After doing step 2, I should change the HW back to GPIO24/32 to pull high, and able to program new image and also able to debug in run-time with JTAG forever, right ? Kindly correct me if there was any mistake.

    I would also include Wait boot as a boot option as Matt P. also did in the linked thread.

    Does the new setup look good to you ?

    Thanks, 

    Johnny

  • Hi Johnny, 

    That all checks out, the DCSM configurations match your explanations. 

    Best,
    Matt