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.

TMS320F28374S: How to migrate project from F28379D

Part Number: TMS320F28374S
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG, TMS320F28379D

Hello,

I currently have a CCS project that is being used on the F28379D LaunchPad. I now have a custom board which uses the F28374S. I am trying to migrate the existing firmware from the F28379D to be compatible with the F28374S.

The project properties currently shows the Variant and core is set to F28377D which is additionally confusing since this project is working with the F28379D. However, the real problem is that the Variant and core field is greyed out. How can I change this? Is there something I am missing?

Additionally, I have created a Target Configuration file for both the F28379D and the F28374S.

Some background information: I created the project using the following empty example: C:\ti\c2000\C2000Ware_4_01_00_00\driverlib\f2837xd\examples\cpu1\empty_projects\CCS\empty_driverlib_project. And I presume because this project is for any F2837xD processor, the target selection is set to F28377D by default.

Is there an easy way to use my existing firmware with the F28374S processor? The project is part of a local Git repository (using CCS Git perspective) for tracking the project.

Thank you,

- Matthew

  • Matthew,

    Will look into this on Monday and get back to you.

    Best Regards

    Siddharth

  • Siddharth,

    Just wondering if you have any information on my question yet.

    Thank you,

    - Matthew

  • Matthew, 

    Sorry for the delayed response. 

    Are you using SysConfig in this project?  If so, then the Variant and core fields  will be greyed out. 

    In SysConfig, there is an option to swtich between devices.   You can click on the "device" icon in SysConfig which displays the "Switch" button . You can click on the Switch button and select the device you want to swtich to.

    Best Regards

    Siddharth

  • Hi Siddharth,

    Thank you for the prompt reply.

    I am not currently using SysConfig, but I am not opposed to using SysConfig. If that is your recommendation, how can I enable my project for SysConfig? I tried enabling SysConfig in the past but the process wasn't clear and I was unsuccessful. Perhaps you could guide me. I do not currently have a .sysconfig file in my project.

    Thank you,

    - Matthew

  • Matthew, 

    Looks like you may have a sysconfig file attached to your project previously.  Variant and core fields are only grayed out only for sysconfig enabled projects.

    If you hover the cursor on the blue dot next to the Variant and core option, it displays the following message.

    To get started with SysConfig , you can refer this file - https://www.ti.com/lit/an/spracx3/spracx3.pdf  . It has a Section titled "Adding C2000 SysConfig Support to Existing Projects" which might be helpful. 

    There is also an video that you can watch - https://www.ti.com/video/6304748751001

    Best Regards

    Siddharth

  • Siddharth,

    Thank you for providing those resources, the Section titled "Adding C2000 SysConfig Support To Existing Projects" answered my question about whether SysConfig was enabled for my project. Thank you! You are correct, SysConfig is already enabled because I have the SysConfg tab available in Project Properties->Build.

    However, I don't believe there was ever a SysConfig file attached to my project previously. Here's why I say this: my project was started from the "empty_driverlib_project" example provided in C2000Ware. However, upon importing that project, I do not see a .syscfg file in the Project Explorer as shown in the screenshot below.

    As a result, I followed the suggestion in the C2000 SysConfig application note that you provided by adding a new .syscfg file to my CCS project. Now I have the SysConfig editor open and I used the Switch button to migrate my processor to the desired target. However, after Rebuilding the project I still see the old variant listed under Project->Properties->General. See screenshot below. Is this expected?

    Thank you for your advice!

    - Matthew

  • Matthew, 

    Yes, it is expected. If you are using SysConfig, then the variant and core options within CCS are no longer valid and hence they are grayed out. 

    Best Regards

    Siddharth

  • Siddharth,

    Thank you for explaining that. However, when I attempt to load the program and debug, I am receiving the following error:

    It seems that the compiler is still trying to locate CPU2 which the F28374S does not have. As a result, I don't think the changes in SysConfig are working properly. Any advice?

    Thanks,

    - Matthew

  • Matthew, 

    Is the target configuration file configured for F28374S? Can you share the target configuration file that you are using?

    Best Regards

    Siddharth

  • Siddharth,

    Ah yes! The target configuration file was still configured for F28379D. As a result, I changed the target configuration file to F28374S and it loaded the program without any warnings. Thank you!

    Is there anything else I must do to my source files, #includes, etc.? Can I expect the existing libraries that I was using with the F28379D to be compatible with the F28374S as well? I am using F021_API_F2837xD_FPU32_EABI.lib and F021_F2837xD_C28x.h for Flash API in my application. The project seems to compile and load, but will those libraries continue working as expected even though I am using a different processor now?

    Thank you in advance.

    - Matthew

  • Matthew,

    Yes, the existing libraries will work for F28374S.  The libaries are developed for the super set part number, however they will work fine on all part numbers of the device family (F2837x)

    Best Regards

    Siddharth

  • Siddharth,

    That is great news! I'm glad the libraries are compatible across all F2837x devices. That helps a lot.

    However, I still have one more doubt. I'm still not convinced that changing the device in SysConfig is actually doing anything. The reason I say this is because the DEVICE Build Variable still says TMS320F28379D. Does the DEVICE Build Variable change dynamically with the device selection? How can I know that SysConfig is actually making changes to my project/build/debug settings? As of right now, I can program both the F28379D and the F28374S without modifying the device selection in SysConfig. All I have to do is change the Target Configuration file. That's why I don't understand if modifying the device selection in SysConfig is necessary.

    Thank you for your continued support!

    - Matthew

  • Matthew, 

    If you are using any of the Syconfig tools like the linker command tool, pinmux , then the migration will change these settings dynamically.  If you are not using any of them, then I don't think it will make any changes.  

    The only change apart from the target configuration file that you will need in your project settings is to make sure that you are using the correct linker command file for F28374S for Flash and RAM available on the device. 

    Best Regards

    Siddharth 

  • Siddharth,

    Thank you for your help! I will look into the linker command file. I am confident now. Thanks for answering all my questions!

    - Matthew

  • Glad that you query is resolved, will close this thread.

    Best Regards

    Siddharth