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.

A few bugs found in CCS 5.1.0.09

Hello,

My small group is working on a project in CCS5.1 that we converted from CCS4.2.  We have all experienced the following bugs:

  1. Sometimes after programming the MCU and entering debug state, running the program results in an ILLEGAL_ISR at the InitFlash() function (specifically when returning from it to the main function).  At any point, if the MCU is power cycled, our heartbeat LED flashes indicating that the MCU is operating normally (obviously made it past the initialization) AND that the program was loaded correctly.  This means that this erroneous state ONLY exists when connected in Debug and is probably not a programmatic error.

    If we then close CCS and re-open it, run a clean and re-enter the debug session, it works fine.  This has happened to three completely different setups more than once.

  2. If you try to rename the Active project sometimes you get a prompt indicating a NULL Pointer Exception. If you close this prompt, the error will continue to re-occur on every build attempt until the IDE is closed and re-opened.

Unfortunately, due to corporate restrictions, I can not upload the specific project, but I will say that the InitFlash function is the one provided by TI.

Thank you.

  • William,

    Apologize for the delayed reply, this post seems to have fallen through the cracks.

    William Perdikakis said:
    Sometimes after programming the MCU and entering debug state, running the program results in an ILLEGAL_ISR at the InitFlash() function (specifically when returning from it to the main function).  

    Are you still experiencing the ILLEGAL_ISR issue? Usually program results in ILLEGAL_ISR when an invalid instruction is decoded. There are some posts in the C2000 device forum that have some suggestions on debugging ILLEGAL_ISR issues. I am including some links below, you may find others by searching the C2000 forum.

    http://e2e.ti.com/support/microcontrollers/tms320c2000_32-bit_real-time_mcus/f/171/t/22586.aspx
    http://e2e.ti.com/support/microcontrollers/tms320c2000_32-bit_real-time_mcus/f/171/t/33880.aspx

    In addition a couple of points to double-check:

    - Make sure InitFlash is not executed from Flash/OTP.  This can be checked in the link map file
    - Make sure the pipeline is flushed before prefetching from the flash - there should be a RPT #7 or more NOP at the end of InitFlash
    - If InitFlash is copied from flash to RAM verify that the copy is happening properly  

    William Perdikakis said:

    If you try to rename the Active project sometimes you get a prompt indicating a NULL Pointer Exception. If you close this prompt, the error will continue to re-occur on every build attempt until the IDE is closed and re-opened.

    Do you see this issue on a BIOS6(RTSC) project or non-BIOS project? If it is a RTSC project, there is another thread that talks about the same issue. In fact, I can reproduce the behavior described in the another thread and will be submitting a bug report against CCS. I haven't seen issues with non-BIOS projects though, so if you are using a non-BIOS project, please provide additional details so we can attempt to reproduce the behavior.

     

  • For the first issue:

    I am sorry for not being clear.

    I see no evidence that this is code related.  Sometimes when running the code through the debugger, the program dies at an ILLEGAL_ISR as soon as the code is first run. Reloading the MCU with the program again, results in the same issue. When this happens, terminating the debugger and power cycling the MCU results in normal operation, (there is no death at an ILLEGAL_ISR). 

    Then, without changing a single line of code: restarting CCS, rebuilding the project and reloading the program to the MCU fixes the issue, no more ILLEGAL_ISR.

    In my mind here, all signs point to a debugging issue. You can rule out the compiler too, since the MCU operates as expected after a power cycle, without being re-downloaded.

    For the second issue:

    BIOS is not used.  This issue occurs when manually trying to change the active project name from VFD28035_v0_a to VFD28035_v0_b, for example. Unfortunately, it fails randomly.

  • William,

    It is difficult to pinpoint a specific reason for why the code ends up in ILLEGAL_ISR. My guess is that something may be putting the processor in a bad state whereby only a power cycle is able to restore it back. Have you tried Reset, Restart and then Reload in the CCS menus to see if possibly resetting the device helps get it back to a good state?

    For the second issue, again this would be difficult to analyze unless we have a reproducible test case, and I know that is hard to produce if it only fails randomly.  I tried creating a simple project and renaming it with the names you mentioned but couldn't duplicate the problem.  What is the path to your workspace?  Is there anything unusual in the path, like accented characters or spaces?