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.

F28M36 Control Card Setting up new C28 Project

Other Parts Discussed in Thread: CONTROLSUITE

Hello,

I am wondering how to get a new CCS project to build for the C28. I tried following the F28M35X Firmware Development Package

F28M35x-FRM-EX-UG-140 (since the F28M36 link is broken) but have not had much success when it comes to getting the C28 portion to build. I get examples running and modified that still run. I am trying to create a document for other members of my team to use and can not get a new project to build. I am sure it is a basic setting or link i am missing since I have other projects built and running. Any ideas? Is there a docuement that is (or will be) released using Code Composer Studio v5.3 to save me the trouble?

 

Regards,

Galen

  • Galen,

    Following the guide in the document you listed should work.  The 35x and 36x devices are very similar and their setup in CCS is nearly identical.  I believe that guide was originally written for CCSv4, but v5 is very similar. 

    What are some of the specific errors your are getting?  I ought to be able to point you in the right direction.

    Trey

  • Trey,

    The screenshots in the document i referenced are completely different than the windows that exist in v5. As i stated i can get a NEW m3 project created that will build. The issue is that the c28 project will not build. I think it has to do with the Configurations under CCS\C2000 Compiler when started it says Debug where example projects are RAM. I tried to add RAM and set active but i am not sure what to select in the Copy settings from region. This leads to unresolved symbols remain.

    Regards,

    Galen

  • I agree that the images are different, but the basic steps are taking are the same.  We are constantly working to improve, but sometime things like documentation get a little outdated.  If you analyze what each step is really asking you to do, you ought to be able to take that information and potentially figure out how to do that in CCSv5.  The windows looks a little different, but really everything is in the same place.

    It does indeed sound like you are having some minor problems with linking all the correct files in.  It sounds like you are using the header files, but have not linked in the F28M36x_GlobalVariableDefs.c file to the project.  Take a look at this guide which describes how the header files work (section 3.2 specifically):

    http://www.ti.com/lit/an/spraa85d/spraa85d.pdf

    This file declares the variables used in the header files and links them to a specific memory section.  When you don't compile this file with the project, these variables end up being used all over your code but never declared and hence you get an error about unresolved symbols.

    Cheers,

    Trey

  • Trey,

    I will read through that document. I did miss the file you mentioned above now i have different errors.

    1) if debug is active i get:

    error #16008-D: file
       "C:/ti/ccsv5/tools/compiler/c2000_6.1.1/lib/rts2800_fpu32.lib<boot.obj>"
       specifies ISA revision "C28FPU32", which is not compatible with ISA revision
       "C2800" specified in a previous file or on the command line

    ///                         UPDATE

    I changed the device from Generic C28xx Device to the F28M36.... and now it builds with warnings i will read through to figure out.

    I am still confused as to why the blinky_C28 builds as a Generic C28xx but not the New project i created.

  • The error you are getting is because of the floating point settings.  The RTS library being included had floating point support while your project didn't.  Everything in a project must be consistent with regard to floating point support.  You can change the floating point support option in the build properties, compiler, processor options.

    blinky_c28 was manually configured to have floating point support (by yours truly nonetheless) even though it is a generic C28x project.  Your new project when configured as generic didn't have floating point support.  Changing the project to be a F28M36x project let CCS know exactly which device this was for and may have changed some of the build options resulting in a successful build.

    Glad to hear you're having a little more luck!

    Trey

  • Trey,

    We moved our projects into a different workspace to use the TFS plugin. we attempted to use new projects and carry over the exisitng ones. I am not sure why and am just spinning my wheels at this point tryign to get this thing to build. 1447.NO_BUILD_spia_loopback_c28.zip I have the project running in another workspace so i think it is some setting(s) that I have incorrect. The file is attached can you (or amemebr of your team) review this and tell me where i am going wrong?

     

    Thanks,

     

    Galen

  • Galen,

    Something is seriously wrong with that project.  I am unable to import it, so diagnosing any problem will be difficult.

    Trey

  • Could it be the way I exported the project? I went with the default settings using the export tool.

    Galen

  • Probably...I don't think the export function is used to often so it may have some bugs.  Can you just zip up the project in the directory where it sits?

    Trey

  • Here it is been playing with including different .cmd files not sure if i am making progress or just banging my head on the desk because at some point it will feel good. I hope I am getting a better understanding of the linker files though.

     

    4520.spia_loopback_c28.zip

     

    This is what the current output looks like (portion):

    'Building target: spia_loopback_c28.out'

    'Invoking: C2000 Linker'

    "C:/ti/ccsv5/tools/compiler/c2000_6.1.1/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --vcu_support=vcu0 -z --stack_size=0x300 -m"spia_loopback_c28.map" --heap_size=0x400 --warn_sections -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.1/lib" -i"C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/lib" -i"C:/Source/LEAP1_9/Instrument/F_GLOC/spia_loopback_c28" -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.1/include" --reread_libs --rom_model -o "spia_loopback_c28.out"  "./custom_includes/utilities_c28.obj" "./custom_includes/c28_spi.obj" "./custom_includes/c28_RAM.obj" "./custom_includes/c28_IPC.obj" "./custom_includes/c28_DAC.obj" "./spia_loopback_c28.obj" "./F28M36x_SysCtrl.obj" "./F28M36x_PieVect.obj" "./F28M36x_PieCtrl.obj" "./F28M36x_Ipc_Util.obj" "./F28M36x_Ipc_Lite.obj" "./F28M36x_Gpio.obj" "./F28M36x_GlobalVariableDefs.obj" "./F28M36x_DefaultIsr.obj" "./F28M36x_CodeStartBranch.obj" -l"C:\Source\LEAP1_9\Instrument\F_GLOC\TI\libs\math\FPUfastRTS\V100\lib\rts2800_fpu32_fast_supplement.lib" -l"C:\Source\LEAP1_9\Instrument\F_GLOC\TI\F28M36x\v110\F28M36x_headers\cmd\F28M36x_Headers_nonBIOS.cmd" -l"C:\Source\LEAP1_9\Instrument\F_GLOC\TI\libs\utilities\flash_api\2806x\v100\lib\rts2800_fpu32.lib" -l"rts2800_fpu32.lib"

    <Linking>

    warning: creating output section ".cinit" without a SECTIONS specification

    warning: creating output section ".ebss" without a SECTIONS specification

    warning: creating output section ".econst" without a SECTIONS specification

    warning: creating output section ".reset" without a SECTIONS specification

    warning: creating output section ".switch" without a SECTIONS specification

    warning: creating output section ".text" without a SECTIONS specification

    warning: creating output section "SHARERAMS5" without a SECTIONS specification

    warning: creating output section "SHARERAMS6" without a SECTIONS specification

    warning: creating output section "codestart" without a SECTIONS specification

    warning: creating output section "ramfuncs" without a SECTIONS specification

    error: program will not fit into available memory.  run placement with

       alignment/blocking fails for section "SHARERAMS5" size 0x1000 page 1.

       Available memory ranges:

  • Alright...now we are making progress!

    You are getting these warnings and errors because most C2000 projects need 2 linker command files.  The first is the F28M36x_Headers_nonBIOS.cmd.  This contains definitions of the peripheral addresses and sections used to link the header files to memory.  The other linker file is the standard program allocation linker command file.  This is the one you are missing.  You'll want to look for something named F28M36xxx_generic_RAM/Flash.cmd and link this into your project.

    Give that a shot and let me know if that fixes your issues.

    Trey

  • Sounds like i was going the right direction... in a seperate workspace i have project built on the SPIA_loopback that has the F28M36x_Headers_nonBios.cmd called as the linker command file in the CCS window and then under C2000 file search path a link to F28M36x_generic_C28_RAM.cmd

     

    When i make the two match i get a lot of section warnings (79 items)

    here is the last sectin prior to warnings:

     

    'Building target: spia_loopback_c28.out'

    'Invoking: C2000 Linker'

    "C:/ti/ccsv5/tools/compiler/c2000_6.1.1/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --vcu_support=vcu0 -z --stack_size=0x300 -m"spia_loopback_c28.map" --heap_size=0x400 --warn_sections -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.1/lib" -i"C:/ti/controlSUITE/libs/math/FPUfastRTS/V100/lib" -i"C:/Source/LEAP1_9/Instrument/F_GLOC/spia_loopback_c28" -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.1/include" --reread_libs --rom_model -o "spia_loopback_c28.out"  "./custom_includes/utilities_c28.obj" "./custom_includes/c28_spi.obj" "./custom_includes/c28_RAM.obj" "./custom_includes/c28_IPC.obj" "./custom_includes/c28_DAC.obj" "./spia_loopback_c28.obj" "./F28M36x_SysCtrl.obj" "./F28M36x_PieVect.obj" "./F28M36x_PieCtrl.obj" "./F28M36x_Ipc_Util.obj" "./F28M36x_Ipc_Lite.obj" "./F28M36x_Gpio.obj" "./F28M36x_GlobalVariableDefs.obj" "./F28M36x_DefaultIsr.obj" "./F28M36x_CodeStartBranch.obj" -l"C:\Source\LEAP1_9\Instrument\F_GLOC\TI\F28M36x\v110\F28M36x_common\cmd\F28M36x_generic_C28_RAM.cmd" -l"C:\Source\LEAP1_9\Instrument\F_GLOC\TI\libs\math\FPUfastRTS\V100\lib\rts2800_fpu32_fast_supplement.lib" -l"C:\Source\LEAP1_9\Instrument\F_GLOC\TI\libs\utilities\flash_api\2806x\v100\lib\rts2800_fpu32.lib" -l"rts2800_fpu32.lib"

    <Linking>

    warning: creating output section "Adc1RegsFile" without a SECTIONS

     

  • Yes, definitely on the right track!

    So in this project it appears that you don't have the F28M36x_Headers_nonBios.cmd file.  If you look through the arguments the RAM cmd is there, but not the headers cmd.  Are you sure this is part of the Linker File Search Path?  Could this maybe be in a different build configuration?

    Trey

  • The one that was zipped up earlier did nto have it. but once you responed i did change the Linker command file: using the Browse... button. In the project explorer it will show up but it is grey and has a grey line through the icon. i was looking for an icon table for CCS but did not find one to tell me what that means.

    Galen

     

  • That probably means it is being excluded from build for this build configuration.  If you right click the file and go to resource configuration -> exclude from build, it will open up a window that will allow you to re-include it in your build.

  • I had just asked one of our developers here and that was his guess. Not sure how or why it was cheked but it is not now.

     

    Thanks

    Galen