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.

Some CCS's failed to program into Flash

Expert 1960 points
Other Parts Discussed in Thread: CONTROLSUITE, UNIFLASH

Hello fellow CCS users,

We have a strange situation here which needs your help and guidance. We just got our new prototype board with F28377D.  We can program code into flash with CCS on 3 computers, but failed on 3 other computers. They all have the same version of CCS (6.1.0), and run the same project with same emulator XDS200. Some have full licenses, and some have free or evaluation license. All 6 computers can run code from RAM and debug. But we cannot figure out why the other 3 computers failed to program into flash (but can still debug with steps through).  When it failed, it shows a message saying "

"Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and..."

We confirmed that we selected the right emulator and MCU (F28377D). In fact we used the same project (even a simple example project from ControlSuite), and made the same selection, but it works on 3 computers and not on other 3. We tried both auto debug (with debugger icon), and manually created a target configuration file, but nothing seem to get the 3 other computers to work, even we cannot see anything different.

Can someone please shed some light on directions for further troubleshooting? Many thanks in advance!!

  • Hello everybody!

    We fully agree. We have the same problem, but we find an addtional detail.

    The CCS UniFlash v2.2 (and also Code Composer Studio 6.1.0) can programm into the Flash of the F28377D, but only on DSP quaility "Engineering sample (TMX)" (see chapter 2.14.9.2 PARTIDL Register in the 'TMS320F2837xD Dual-Core Delfino Microcontrollers - Technical Reference Manual; ID: SPRUHM8E'). If we use DSP quaility "Fully qualified (TMS)" CCS UniFlash v2.2 and CCS 6.1.0 failed.

    With the actual version of Code Composer Studio (Version 6.1.2) is possible to flash all types of F28377D again. We found in the release notes of CCS6, many bug fixes for flashing have been done (software-dl.ti.com/.../ReleaseNote.htm). So these bugfixes may be integrated into CCS UniFlash too.

    Best regards
    Rudolf Richter
  • Shef, Rudolf,

    Can you check for updates in CCS and install the updates? Especially the updates related to TI C2000 Device Support and Debug server Flash.

    Regarding UniFlash: Can you use the latest UniFlash version 3.4? It is better to check for updates here as well.

    Thanks and regards,
    Vamsi
  • Hi Vamsi,

    I upgraded CCS from 6.1.0 to 6.1.2, and now it's working fine now for the same board! THis is surprise since we only have 6.1.0 for a year. Is there a known issue in 6.1.0 that caused flash to fail for f28377d? If so, how come it works on some computer with the same version of CCS? It's good to have it working with the newer version, but it'd be good to know the exact root cause. Thanks!
  • This version works !

    Many thanks and best regards
    Rudolf
  • Shef,

    Good that it worked.

    There is no any bug fix done in the last one year.  It might be because of a fix in the device xmls or gels as well.  CCS version can be same but the update patches installed can be different.  On the computers that worked, CCS might have suggested updates and were installed properly.

    Thanks and regards,

    Vamsi  

  • Hi Vamsi,

    Thanks for your reply. It sounds like that we might be able to get it to work with out upgrading CCS, which would be prefereable. As I mentioned, one of the computers has the same "old" version of CCS (6.1.0) but still works fine to program the chip. If we don't want to upgrade CCS to the latest, what should I do to get it to work? Is there anything I can compare or copy from the "working" computer to the non-working one to fix the problem? It'd really nice to get to the bottom of this. Thanks again!
  • Shef,

    What is preventing you from updating CCS? Please explain.
    You can try comparing the gel files and the flash config files (C:\ti\ccsv6\ccs_base\c2000\nowFlash\configs).

    Thanks and regards,
    Vamsi
  • Hi Vamsi,

    Where is Gel files are stored? So far I have not touched anything about Gel file. I thought that it is something used only in older versions of CCS. Why and where do we need it?

    Believe or not, we are generally reluctant to upgrade to newer toolchain unless there are specific benefits and motivation to go it. We have a a group of developers who use the same version of CCS and tools, and there is a strict policy to evaluate and test new toolchains.
  • Shef,

    Gel files are used in CCSV6 as well. Check f28377d_cpu1.gel and f28377d_cpu2.gel at C:\ti\ccsv6\ccs_base\emulation\gel. Memory map (hotmenu F2837x_Memory_Map) in the gel file tells the debugger which areas of memory it can and cannot access. You can right click on the core in debug window and navigate to open the gel file. Typically, the memory map matches the MEMORY definition in your linker command file. GEL file is specified in the device XML (C:\ti\ccsv6\ccs_base\common\targetdb\devices) that is used to create the target configuration file. When debugger is launched with that target configuration, then GEL file is loaded and memory map will be automatically defined.

    If the memory map in the gel declares a memory range as read only, the debugger issues a warning when your coff file contains code/data mapped to that read only address range (this looks to be the warning that you got).

    What is the full error or warning message that you got upon load failure?

    Regarding CCS updates: We always suggest to update the tools to get any latest enhancements, features and bug fixes. But I can understand your concern. I don't know if the full vs free license differ in how they get updated.

    Thanks and regards,
    Vamsi
  • Hi Vamsi,

    Thanks for your detailed explanation on GEL files.  I looked at the two Gel files you mentioned, which look fine. They have time stamp of 2014 which means those files have never been changed since 2014. It works fine for F28377D controlCard but not for our own boards.  I paste a screenshot below to show the error message. I compared the memory maps when it connected to controlCard and when it connected to our own boards, there is no difference, as far as I can tell. We use a fully licensed CCS version 6.1.0.

  • Shef,

    Can you try generating the Debug Server logs for a device that is not working?

    Please following the instructions available here: processors.wiki.ti.com/.../Troubleshooting_CCSv6

    Please enable logging before connecting to the device. I want to gather some information about the connect sequence.

    From the observation you are seeing, it seems that these devices are not being detected as a flash device; and hopefully, the logs will show us why this is the case.

    Thanks,
    Ricky

  • Hi Ricky,

    Thanks for your reply. I turned on the Debug Server Log, and tried to connect to the board. The CCS debugger connects to the board fine, and I can set memory contents etc. But when I tried to program a project into flash, it failed.  The debug server log seems to be exceptionally long and Greek to me, but hopefully you can find some clue there for the root cause.

    Many thanks for your help - I really appreciate it.

  • Thanks for providing the logs. Let me analyze the information, and I'll keep you updated on what I find out.

    Thanks.
  • Shef,

    Can you check for updates in your CCS6.1.0 install? Go to 'Help -> Check for Updates' in CCS. I think Vamsi already mentioned it, but please look for an update for TI C2000 Device Support, and the version should be 4.1.6.0.

    This version is needed to use your device, since your device is rev. C, and support for this was added after CCS6.1.0 was released. Newer versions of CCS has this support natively, which is why it is working in CCS6.1.2

    Thanks,
    Ricky
  • Shef,

    The Flash config file (C:\ti\ccsv6\ccs_base\c2000\nowFlash\configs\F2837xD.CPU1.xml) that I asked you to compare is the one that is updated for RevC support.

    Thanks and regards,
    Vamsi