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.

TMS320F2812: Migration from CCS v3.3 to CCS v12

Part Number: TMS320F2812
Other Parts Discussed in Thread: UNIFLASH,

We've been using CCS v3.3. XDS510 JTAG USB together with SDFlash to build project on TMS320F2812. Now i'm trying to migrate the entire project to CCS v12, XDS200 and UniFlash. I did not use the Import Legacy CCSv3.3 Projects feature. Instead I created an entire new project (please see picture attached of my settings), copy all the source codes and libraries from CCSv3.3 over this new one, make sure the linker file is also identical, make sure the preprocessor includes all necessary libraries. I was able to build the project successfully on CCS v12 and flash the out file on the chip via UniFlash and XDS200 with no problems.

Our system seemed to work at first, like some blinking LEDs patterns were correct. But then we encountered some problems and it's challenging for me to describe all details of the problem because what without disclosing the details of the projects, so please bear with me. On high level, it looks like that when the TMS320 chip trying to talk to a host via Serical Communication Interface (SCI), the chip got unresponsive and froze. The way we could tell it' froze was due to those blinking LEDs stopped blinking. These blinking LEDs are controlled by a CPU_TIMER0_ISR i.e an interrupt and these LEDs are not touched anywhere else in the program as they are mere indicators for us to know that we flash the right firmware; so even if somewhere in the code got stuck in a loop, the ISR should still be executed, is it true?

Hence, I'm so confused where the problem is because we just tried to duplicate the entire project on CCSv12. I even tried to do the same thing on CCS v5 and it pose exactly same problems. I know my problem description might not be super clear but appreciate any suggestion or feedback! 

Thank you,

  • Hello,

    This is a tricky issue and best handled by the device experts. I will bring this thread to their attention.

    The only suggestion I have is to try using the same compiler version that you used in CCSv3.3. You can have CCS discover the compiler in the 3.3 directory. See the "Compiler Discovery" section in the below article:

    https://dev.ti.com/tirex/explore/node?node=AJRfIGmBSkp9naUDysxAFg__FUz-xrs__LATEST

    Hopefully the device experts can provide better suggestions.

    Thanks

    ki

  • Thank you so much Ki! I will follow the documentation and try as you said

  • Huy,
    Debugging a problem like this is pretty challenging without access to the hardware and code. However, the following suggestions should help you narrow down the problem:

    1. Use the Import Legacy CCSv3.3 Projects feature and see if that makes a difference.
    2. Compare the flash image between a device programmed using SDFlash and another device programmed using Uniflash. You can do this by saving the image as a hex file and using a utility like Beyondcompare (or any utility that compares ASCII text files and displays the differences).
    3. Program the board that works fine with CCS3.3+SDFlash with CCS12+Uniflash and vice versa. This is to ensure that the problem is not with any hardware on the board.
    so even if somewhere in the code got stuck in a loop, the ISR should still be executed, is it true?

    The CPU timer interrupt will work provided there is no other problem. If your code has lost its way and the watchdog is repeatedly resetting your device, the LED is not going to blink.

  • Hi Hareesh,

    I have tried step 3 and Im quite certain is just the code generated by CCS12. I tried flashing the CCS3.3 program with SDFlash and UniFlash and It works. I tried flashing the CCS12 program with SDFlash and UniFlash and it showed up the problems. 

    I will try the first 2 steps. Thank you so much for your suggestion.

  • Yes, 1 or 2 should definitely point you to the issue. Compiler version or optimization level used can sometimes produce slightly different outputs.

  • Hi Hareesh,

    I have tried step 1 "Import Legacy CCSv3.3" and I got this error message. Do you have any suggestions?

  • I am afraid I am not familiar with those errors. Let me check with someone in the CCS team. In the interim, please try #2.

  • Huy,

                    I checked with a CCS expert and he had this to say: “A 3.3->12.0 migration is a huge jump and for any non-simple project, I expect various issues. I think starting with a new project is the right call in this case”. So, please disregard my suggestion #1 and focus on #2. I am sure there will be a difference in the flash image. You can then dig deeper into what is causing the difference. It is likely to be in compiler version or optimization settings.