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.

Program my C2000 with Uniflash

Other Parts Discussed in Thread: TMS320F28377D, UNIFLASH, CONTROLSUITE

Hi all

i'm working with the TMS320F28377D MCU in my board (not EVAL). until now i did all the debug with the JTAG, using the XDS510 ICE.

now i wanna program the MCU using Uniflash.

so when im starting program i dont see any error but it seems to be not working.

when i start the verification i see an error, he cannot find a match from the memory address 0x0000000000000 (something like that).

any help??

  • Hi Shimon,

    Did you set the Target Configuration correctly (in Uniflash)? Also, is the programming process completing successfully?

    Regards,
    Gautam

  • Hi Shimon,

    What is the version of the UniFlash you are using?  

    Did you 'Check for Updates' in the UniFlash Help menu and install any updates available?  

    Can you enable the verbose output mode available at the bottom of the UniFlash Flash setting's GUI and provide us the messages from the console window when failure occurs?

    Thanks and regards,

    Vamsi

  • i'm working with Uniflash 3.4.0.0003.. i downloaded the offline installation and cant check for update because i work in an internal network..
    anyway, i downloaded it last week so i dont think that theres new version.

    ill enable the verbose tommorow and update..

    one more question, for programming my application to the flash, do i need to add extra code in my program or simply load the .out file in uniflash?

    Thanks!

  • Hi Shimon,

    Enable verbose mode and also generate the logs for us to debug.  You can generate logs in UniFlash by navigating to "Help menu -> Start Logging".

    Regarding Flash load:

    (1) Did you map your code and other relevant sections to Flash memory in your linker command file?  You can check "2837xD_FLASH_lnk_cpu1.cmd" provided in Controlsuite at C:\ti\controlSUITE\device_support\F2837xD\v180\F2837xD_common\cmd.  

    (2) In your application code, did you assign Flash setup code like InitFlash() and other time critical code to ramfuncs section to copy them to RAM from Flash at runtime using memcpy() function?  

    (3) Did you configure the load and run address for the ramfuncs section in your linker command file?

    (4) If you want to run your application from Flash in standalone mode, did you include the code to send boot command to allow the CPU2 application to boot to Flash?  Check out the blinky example in Controsuite (C:\ti\controlSUITE\device_support\F2837xD\v180\F2837xD_examples_Dual\blinky_dc). 

    If your application is ready for Flash execution, then you can simply load the coff file using UniFlash.

    Thanks and regards,

    Vamsi 

  • Hi Vamsi

    (1) i imported the 2837xD_FLASH_lnk_cpu1.cmd from the controlsuite as you said and when i try to debug the project, it shows me errors from this file.. when you say "map the file" what do you mean by that? do i need to add code to this file? and what about the 2837xD_RAM_lnk_cpu1.cmd? do i need this file too?
    (2) i added the InitFlash() function like in the Blinky_DC project..
    (3) no, ill be happy if you explain what did you mean..
    (4) i want to program my board so when you power up the board, my program will start working.. if it Flash in standalone mode then so be it.. anyway, my project is using only CPU1, if you have an example of a project ready for flash execution ill be happy if you'll share it with me.
    or just tell me what should i do step by step to do so.

    Thanks!
    Shimon
  • Ok so i checked other similar issues here in E2E and i found what was my problem.. the problem was that i had in debug/release configuration, so i switched to Flash config and then it worked fine. i thougth that i need the Uniflash to program the chip but it seems that the CCS can do it to.
    is it?
  • Hi Shimon,

    Good that you are able to program using CCS.  Based on your question, we thought you are able to program the Flash using CCS Flash Plugin but not with UniFlash.  Yes, Flash can be programmed using CCS as well - During program load, if there is code/data mapped to Flash in the coff file, CCS will automatically invoke CCS Flash Plugin to program the Flash contents.  In CCS debug view, you can view the On-Chip Flash Plugin GUI by navigating to "Tools menu -> On-Chip Flash".  UniFlash is a standalone Flash programming tool and you don't have to install CCS to use UniFlash.  UniFlash does not have a debug environment like CCS.

    As you mentioned, when you switch to Flash config for your project, Flash linker command file (2837xD_FLASH_lnk_cpu1.cmd) will be chosen for your application.  In this linker command file, you can notice that appropriate sections are mapped to Flash as below.  Hence CCS Flash Plugin gets invoked to program the Flash.

    SECTIONS

    {

      /* Allocate program areas: */

      .cinit              : > FLASHB      PAGE = 0, ALIGN(4)

      .pinit              : > FLASHB,     PAGE = 0, ALIGN(4)

      .text               : >> FLASHB | FLASHC | FLASHD | FLASHE      PAGE = 0, ALIGN(4)

    .

    .

    .

    }

    Thanks and regards,

    Vamsi