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.

Can't get CCS to build any example program under Linux, works fine in windoze

Other Parts Discussed in Thread: CONTROLSUITE

Hi guys,

I'm new to the TI world.  We've been an Atmel but with their buyout and inevitable destruction at the hands of MicroWhatever, I decided to be proactive and move our shop to another chip.  A colleague suggested the C2000 line.  I took a look, liked what I saw and ordered the basic $17 LaunchPad board. 

We're an all-Linux shop but I keep a windoze machine around for just in case.  I spent precious Hughsnet gigabytes downloading Studio for both environments.  Then after more reading, controlSUITE.  I followed these instructions to install controlSUITE on the Ubuntu system on my desk.

(C'mon guys, that article's 4 years old and still no controlSUITE for Linux?!?!)

when the board arrived, I spent quite some time figuring out the demo program was located in controlSUITE (HINT TI guys: A note in the quickstart guide that comes in the box would help)

I loaded it on the windoze system (win7) first.  It built and burned just fine.  Then over to the Ubuntu box.  FAIL!

The program compiles OK but I get this from the linker:

inished building: ../Example_F2802xLaunchPadDemo.c
gmake: *** No rule to make target `/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/F2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd', needed by `Example_F2802xLaunchPad_demo.out'.
gmake: Target `all' not remade because of errors.

I've spent about 3 days on this problem, including laboriously comparing every variable between the windoze and Ubuntu boxen but with no luck.  I can clearly see the problem in the makefile but since it's  a generated file, editing it does no good.

Where do I look next?


Thanks,

John

jgd@tnduction.com

  • John,

    I apologize for the inconvenience. I looked into it and it looks like there is a text case issue. Since windows doesn't care about text case when it comes to linking, this is why it built fine on windows. When you have the demo project open in CCS, right click and go to properties on the "F2802x_Headers_nonBIOS.cmd" file. Click on the "resource" tab on the left and you should see an "Edit" button on the right once on that tab. Click "Edit" and change the "F2802x_headers" text in the string to "f2802x_headers". Click ok and ok again. This file should now be properly linked.

    I'll file a bug to get this corrected.

    Best Regards,
    Chris
  • Thanks for the quick reply. Still not working. Let me verify in my words what you wanted me to do. In "Project Explorer", open the project and hover over the file and right click. Then select "properties". In the window is "location" with an "EDIT" button. The first line of the window is "edit a link location" and right below it is a triangle warning and "This path does not exist. The path is

    INSTALLROOT_F2802x_V200/F2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd

    I initially changed the "F" in the .cmd name and that didn't work. I used file manager to actually find the file and realized that you mean to change the directory name to "f2802x_headers". I did that and the make problem went away. however a large number of other ones popped up.

    recalling a problem with relative paths, I went to "properties" on the main project and under "build->linker->C2000 search paths, added absolute paths to F2802x_generic_ram.cmd and IQmath.lib. I removed the original entry

    "${INSTALLROOT_F2802x_V200}/F2802x_common/cmd/F2802x_generic_ram.cmd"

    and

    RTS2800ml.lib

    I recalled reading about these problems on a blog.

    That got me real close but I still have some unresolved symbols. Console output:


    **** Build of configuration RAM for project Example_F2802xEPwmDeadBand ****

    /home/jgd/ti/ccsv6/utils/bin/gmake -k all
    Building file: ../Example_2802xEPwmDeadBand.c
    Invoking: C2000 Compiler
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -g --include_path="/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include" --include_path="/packages/ti/xdais" --include_path="/home/jgd/controlSUITE/development_kits/C2000_LaunchPad" --include_path="/home/jgd/libs/math/IQmath/v15c/include" --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --output_all_syms --cdebug_asm_data --preproc_with_compile --preproc_dependency="Example_2802xEPwmDeadBand.pp" "../Example_2802xEPwmDeadBand.c"
    Finished building: ../Example_2802xEPwmDeadBand.c

    Building target: Example_F2802xEPwmDeadBand.out
    Invoking: C2000 Linker
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -g --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --output_all_syms --cdebug_asm_data -z --stack_size=0x200 -m"Example_F2802xEPwmDeadBand.map" --warn_sections -i"/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/lib" -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib" -i"/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include" -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/epwm_deadband" -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/F2802x_common/lib" -i"/home/jgd/libs/math/IQmath/v15c/lib" --reread_libs --verbose_diagnostics --issue_remarks --xml_link_info="Example_F2802xEPwmDeadBand_linkInfo.xml" --entry_point=code_start --rom_model -o "Example_F2802xEPwmDeadBand.out" "./Example_2802xEPwmDeadBand.obj" "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd" "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib" -l/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/cmd/F2802x_generic_ram.cmd -l"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/IQmath.lib"
    warning: creating output section "csmpasswds" without a SECTIONS specification
    warning: creating output section "csm_rsvd" without a SECTIONS specification

    undefined first referenced
    symbol in file
    --------- ----------------
    _PIE_setDebugIntVectorTable ./Example_2802xEPwmDeadBand.obj
    _c_int00 /home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib<F2802x_asmfuncs.obj>

    error: unresolved symbols remain
    warning: entry-point symbol other than "_c_int00" specified: "code_start"
    error: errors encountered during linking; "Example_F2802xEPwmDeadBand.out" not
    built

    >> Compilation failure
    gmake: *** [Example_F2802xEPwmDeadBand.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    Don't know where to go from here.

    Thanks for the help so far,
    John
  • John,

    I was only able to replicate when "rts2800_ml.lib" was removed. I suggest adding that library back and seeing if that resolves your issue. Additionally, I recommend looking at the f2802x examples here (v230 is the latest): ~\controlSUITE\device_support\f2802x
    These examples are tested with controlCARDs but should run with little to no changes on a launchpad. They are the newer set of examples.

    Best Regards,
    Chris
  • Evening Chris,

    I'm afraid we're going backward.  There was no _ml.lib in v230.  I started at the base of controlSUITE and did a find on "rts2800_*".  Only

    /home/jgd/controlSUITE/libs/utilities/flash_api/2806x/v100/lib

    has _bl.lib.  Screen shot of my linking setup

    Console output:


    **** Build of configuration Flash for project Example_F2802xLaunchPadDemo ****

    /home/jgd/ti/ccsv6/utils/bin/gmake -k all
    Building file: ../Example_F2802xLaunchPadDemo.c
    Invoking: C2000 Compiler
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -O0 --include_path="/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include" --include_path="/home/jgd/controlSUITE/development_kits/C2000_LaunchPad" --include_path="/packages/ti/xdais" --advice:performance=all -g --define="_FLASH" --define=NDEBUG --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --gen_func_subsections=on --sat_reassoc=on --output_all_syms --cdebug_asm_data --preproc_with_compile --preproc_dependency="Example_F2802xLaunchPadDemo.pp"  "../Example_F2802xLaunchPadDemo.c"
    "../Example_F2802xLaunchPadDemo.c", line 373: warning: argument of type
              "int (*)(int, char *, unsigned int)" is incompatible with parameter
              of type "int (*)(int, const char *, unsigned int)"
          status = add_device("scia", _SSA, SCI_open, SCI_close, SCI_read, SCI_write, SCI_lseek, SCI_unlink, SCI_rename);
                                                                           ^

    "../Example_F2802xLaunchPadDemo.c", line 280: warning: variable "fid" was set
              but never used
          volatile FILE *fid;
                         ^

    Finished building: ../Example_F2802xLaunchPadDemo.c
     
    gmake: *** No rule to make target `/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib', needed by `Example_F2802xLaunchPad_demo.out'.
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    The path to driverlib.lib as indicated above  does not exist.  I did a find on C2000_LaunchPad and that file does not exist.  IT does exist in

    /home/jgd/controlSUITE/development_kits/HV_SOLAR_DC_AC_v1.1/Solar_HV_DCAC_Concerto_SCI_Rev_0/m3/ccs

    I didn't go there.

    The _bl.lib would be the problem so I went back to the latest copy of _ml which is in

    /home/jgd/controlSUITE/libs/utilities/flash_api/2806x/v100/lib/rts2800_ml.lib


    Same problem.  Console output:


    **** Build of configuration Flash for project Example_F2802xLaunchPadDemo ****

    /home/jgd/ti/ccsv6/utils/bin/gmake -k all
    Building file: ../Example_F2802xLaunchPadDemo.c
    Invoking: C2000 Compiler
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -O0 --include_path="/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include" --include_path="/home/jgd/controlSUITE/development_kits/C2000_LaunchPad" --include_path="/packages/ti/xdais" --advice:performance=all -g --define="_FLASH" --define=NDEBUG --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --gen_func_subsections=on --sat_reassoc=on --output_all_syms --cdebug_asm_data --preproc_with_compile --preproc_dependency="Example_F2802xLaunchPadDemo.pp"  "../Example_F2802xLaunchPadDemo.c"
    "../Example_F2802xLaunchPadDemo.c", line 373: warning: argument of type
              "int (*)(int, char *, unsigned int)" is incompatible with parameter
              of type "int (*)(int, const char *, unsigned int)"
          status = add_device("scia", _SSA, SCI_open, SCI_close, SCI_read, SCI_write, SCI_lseek, SCI_unlink, SCI_rename);
                                                                           ^

    "../Example_F2802xLaunchPadDemo.c", line 280: warning: variable "fid" was set
              but never used
          volatile FILE *fid;
                         ^

    Finished building: ../Example_F2802xLaunchPadDemo.c
     
    gmake: *** No rule to make target `/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib', needed by `Example_F2802xLaunchPad_demo.out'.
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

    at this point I'd like to save this work off somewhere, reinstall controlSUITE and start over.


    Surely this can't be this hard.

    BTW, before my board arrived, I played around with some of the other demo projects.  I wasn't talking notes at that point but I think it was the LED flasher.  It was rife with upper/lower case errors, mostly in #include files.  I fixed the problems and got it to make. 

    Seems like it might be a good job for an intern to go through controlSUITE and make it Linux friendly.

    Thanks,

    John

  • John,

    I appreciate your patience. Let me clarify what I suggested.

    The "rts2800_ml.lib" isn't part of controlSUITE, it's a library provided within the C2000 compiler tool within CCS. You already have link paths setup for it, the library name just has to be added to the "include library file" section in your first screenshot. This won't be found in device support. With that lib and minor text case fixes (those we already covered), I was able to compile on Linux.

    I encourage you to look at the examples for f2802x within device support. These examples are newer and run through tests on Linux so they should compile fine without edits.

    I've already made a note to have these c2000 launchpad examples looked at.

    Best Regards,
    Chris
  • This morning I started over, installed a new copy of controlSUITE, fixed the case problem and gave IQmath.lib an absolute path. That solved the "files not found" problem. Now I'm down to this


    **** Build of configuration Flash for project Example_F2802xLaunchPadDemo ****

    /home/jgd/ti/ccsv6/utils/bin/gmake -k all
    Building file: ../Example_F2802xLaunchPadDemo.c
    Invoking: C2000 Compiler
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -O0 -g --include_path="/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include" --include_path="/home/jgd/controlSUITE/development_kits/C2000_LaunchPad" --include_path="/packages/ti/xdais" --define="_FLASH" --define=NDEBUG --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --gen_func_subsections=on --output_all_syms --cdebug_asm_data --preproc_with_compile --preproc_dependency="Example_F2802xLaunchPadDemo.pp" "../Example_F2802xLaunchPadDemo.c"
    "../Example_F2802xLaunchPadDemo.c", line 373: warning: argument of type
    "int (*)(int, char *, unsigned int)" is incompatible with parameter
    of type "int (*)(int, const char *, unsigned int)"
    status = add_device("scia", _SSA, SCI_open, SCI_close, SCI_read, SCI_write, SCI_lseek, SCI_unlink, SCI_rename);
    ^

    "../Example_F2802xLaunchPadDemo.c", line 280: warning: variable "fid" was set
    but never used
    volatile FILE *fid;
    ^

    Finished building: ../Example_F2802xLaunchPadDemo.c

    Building target: Example_F2802xLaunchPad_demo.out
    Invoking: C2000 Linker
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -O0 -g --define="_FLASH" --define=NDEBUG --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --gen_func_subsections=on --output_all_syms --cdebug_asm_data -z --stack_size=0x300 -m"Example_F2802xLaunchPad_demo.map" --heap_size=0x200 --warn_sections -i"/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/lib" -i"/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include" -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/C2kLaunchPadDemo" -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/F2802x_common/lib" --reread_libs --verbose_diagnostics --issue_remarks --xml_link_info="Example_F2802xLaunchPad_demo_linkInfo.xml" --entry_point=code_start --rom_model -o "Example_F2802xLaunchPad_demo.out" "./Example_F2802xLaunchPadDemo.obj" "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd" "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib" -l"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/C2kLaunchPadDemo/../../f2802x_common/cmd/F28027.cmd" -l"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/IQmath.lib" -l"rts2800_ml.lib"
    "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/C2kLaunchPadDemo/../../f2802x_common/cmd/F28027.cmd", line 117: warning:
    memory range not found: FLASHD. on page 0
    .text : >> FLASHA | FLASHC | FLASHD. PAGE = 0
    warning: entry-point symbol other than "_c_int00" specified: "code_start"
    Finished building target: Example_F2802xLaunchPad_demo.out


    **** Build Finished ****


    What next?

    Thanks,
    John
  • John,

    That example looks to be building the .out file, so you should be fine to load/run it.

    To get rid of the warning for the F28027.cmd, open up that file, go to the SECTIONs part, find the ".text" and change the "." after FLASHD to a ","

    To get rid of the argument of type warning, find the "add_device" function call in the main source, ctrl+left-click on "SCI_write", and put "const" in front of "char * buf" in SCI_write.

    The other warnings you can ignore.

    Best Regards,
    Chris
  • Good morning.

    I had to do some actual work yesterday so my reply is a bit late. And thank YOU for your patience in helping me with this quest.

    OK, I did what you suggested before and as the console dump above shows, it compiled and linked just fine. It even flashed and ran on the board, though this warning

    warning: entry-point symbol other than "_c_int00" specified: "code_start"

    Had me concerned.

    Next, in a major effort to snatch failure from the arms of success, I decided to clean up my desktop and remove every other project that started with "Example_F280.

    That left this project, the LED flasher project and driverlib in place. Major mistake. The remake resulted in numerous undefined variables and a bunch of other stuff too ugly to look at. So I put them all back.

    The link still failed with the error

    undefined first referenced
    symbol in file
    --------- ----------------
    _PIE_setDebugIntVectorTable ./Example_F2802xLaunchPadDemo.obj

    So I grepped for that symbol and found it in driverlib/pie.c. Looking there I found this function void PIE_setDebugIntVectorTable(PIE_Handle pieHandle) wrapped in an #ifdef DEBUG. So I found pie.h. In it I found this tidbit of code

    #ifdef _DEBUG
    //! \brief Initializes the vector table with Debug interrupt handlers
    //! \param[in] pieHandle The peripheral interrupt expansion (PIE) object handle
    void PIE_setDebugIntVectorTable(PIE_Handle pieHandle);
    #endif //end #ifdef DEBUG

    So it looks like DEBUG is being set somewhere even though there is no debug configuration available for this project. On a FLASH config.

    I went back and looked at the project properties and see on the command line that NDEBUG and _DEBUG are defined. Those should not result in DEBUG being defined, I don't think.

    One last thing.

    late last night I decided to compile the whole collection of projects starting with Example_F280 that I had imported back into project explorer. All the projects save 2 (too tired at that point to note which two) failed on the upper/lower case issue that you pointed me to early on. I picked a couple at random, fixed the case problem and the projects made just fine.

    So I'm kinda stuck again. I'll take your advice about looking at other projects but I suspect they'll have the same problems. Plus I get kinda monomaniacal with problems like these.

    Thanks,
    John
  • John,

    The entry point warning can safely be ignored. If you want, you can go into the project properties (Build->C2000 Compiler->Advanced Options->Diagnostic Options) and add "10063" to the suppress diagnostic field to ignore the warning.

    Yes, in the project properties (Build->C2000 Compiler->Advanced Options->Predefined Symbols), DEBUG is set as well as other pre-define values. These do result in them being defined and affecting the project source code. This is an example, so DEBUG is on.

    The projects under device support have been tested on Linux and you shouldn't run into the issues presented within these C2000 Launchpad directories. Make sure to import the projects and not copy them into your workspace since that will break the method of linking we develop with. 

    Best Regards

    Chris

  • The projects under device support have been tested on Linux and you shouldn't run into the issues presented within these C2000 Launchpad directories. Make sure to import the projects and not copy them into your workspace since that will break the method of linking we develop with.

    ------------

    That's my problem. I copied the demo over to my work directory, not wanting to modify the original. OK, I'll start from scratch again and see what happens.

    Thanks
    John
  • Chris, I'm at my wit's end. Today I took a laptop with Ubuntu 12.04LTS on it and little else. I did a clean install of CCS and controlSUITE. I selected all the projects that start with "Example" and installed them in Project explorer. I applied everything we've learned during this thread. Still no good. I'm still getting that unresolved symbol error.

    So I went back to my windoze machine and ran a build just to make sure it works. It does. I saved the console output from the windoze and linux machines and compared them. Identical right up until the

    undefined first referenced
    symbol in file
    --------- ----------------
    _PIE_setDebugIntVectorTable ./Example_2802xFlash.obj

    pops up. here they are, reformatted a bit for easier reading. I did find that "DEBUG" is not just defined; it is a macro. _DEBUG is defined in the build config. Still DEBUG isn't defined when things get to PIE.c HELP!!!

    ----------- Linux console output -----------------
    **** Build of configuration Flash for project Example_28027_Flash ****

    /home/jgd/ti/ccsv6/utils/bin/gmake -k all
    Building file: ../Example_2802xFlash.c
    Invoking: C2000 Compiler
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -g

    --include_path="/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include"
    --include_path="/packages/ti/xdais"
    --include_path="/home/jgd/controlSUITE/development_kits/C2000_LaunchPad"
    --include_path="/home/jgd/libs/math/IQmath/v15c/include"

    --define="_DEBUG" --define="_FLASH" --define="LARGE_MODEL"

    --quiet --verbose_diagnostics --diag_warning=225 --issue_remarks --output_all_syms --cdebug_asm_data --preproc_with_compile --preproc_dependency="Example_2802xFlash.pp" "../Example_2802xFlash.c"
    "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/include/adc.h", line 615: remark:
    parameter "adcHandle" was never referenced
    inline int16_t ADC_getTemperatureC(ADC_Handle adcHandle, int16_t sensorSample)
    ^

    "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/include/adc.h", line 623: remark:
    parameter "adcHandle" was never referenced
    inline int16_t ADC_getTemperatureK(ADC_Handle adcHandle, int16_t sensorSample)
    ^

    Finished building: ../Example_2802xFlash.c

    Building target: Example_28027_Flash.out
    Invoking: C2000 Linker
    "/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000"

    -v28 -ml -mt -g --define="_DEBUG" --define="_FLASH" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --issue_remarks --output_all_syms --cdebug_asm_data -z --stack_size=0x300 -m"Example_28027_Flash.map" --warn_sections

    -i"/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/lib"
    -i"/home/jgd/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include"
    -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/flash_f28027"
    -i"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib"
    -i"/home/jgd/libs/math/IQmath/v15c/lib" --reread_libs --verbose_diagnostics


    --issue_remarks --xml_link_info="Example_28027_Flash_linkInfo.xml" --entry_point=code_start --rom_model -o "Example_28027_Flash.out"

    "./Example_2802xFlash.obj"
    "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd"
    "/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib"

    -l/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/cmd/F2802x_generic_flash.cmd
    -l"/home/jgd/controlSUITE/libs/utilities/flash_api/2803x/v100/lib/rts2800_ml.lib"
    -l"/home/jgd/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/IQmath.lib"

    undefined first referenced
    symbol in file
    --------- ----------------
    _PIE_setDebugIntVectorTable ./Example_2802xFlash.obj

    error: unresolved symbols remain
    warning: entry-point symbol other than "_c_int00" specified: "code_start"
    error: errors encountered during linking; "Example_28027_Flash.out" not built

    >> Compilation failure
    gmake: *** [Example_28027_Flash.out] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****
    ----------------------------------------------

    -----------windoze console output ----------------

    **** Build of configuration Flash for project Example_F2802xLaunchPadDemo ****

    "C:\\ti\\ccsv6\\utils\\bin\\gmake" -k all
    'Building file: ../Example_F2802xLaunchPadDemo.c'


    'Invoking: C2000 Compiler'
    "C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -O0 -g

    --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include"
    --include_path="C:/ti/controlSUITE/development_kits/C2000_LaunchPad"
    --include_path="/packages/ti/xdais"



    --define="_FLASH" --define=NDEBUG --define="_DEBUG" --define="LARGE_MODEL"



    --quiet --verbose_diagnostics --diag_warning=225 --gen_func_subsections=on --output_all_syms

    --cdebug_asm_data --preproc_with_compile --preproc_dependency="Example_F2802xLaunchPadDemo.pp"

    "../Example_F2802xLaunchPadDemo.c"
    "../Example_F2802xLaunchPadDemo.c", line 373: warning: argument of type
    "int (*)(int, char *, unsigned int)" is incompatible with parameter
    of type "int (*)(int, const char *, unsigned int)"
    status = add_device("scia", _SSA, SCI_open, SCI_close, SCI_read, SCI_write, SCI_lseek, SCI_unlink, SCI_rename);

    ^

    "../Example_F2802xLaunchPadDemo.c", line 280: warning: variable "fid" was set
    but never used
    volatile FILE *fid;
    ^

    'Finished building: ../Example_F2802xLaunchPadDemo.c'
    '



    '
    'Building target: Example_F2802xLaunchPad_demo.out'
    'Invoking: C2000 Linker'


    "C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/bin/cl2000" -v28 -ml -mt -O0 -g --define="_FLASH" --define=NDEBUG --define="_DEBUG" --define="LARGE_MODEL" --quiet --verbose_diagnostics --diag_warning=225 --gen_func_subsections=on --output_all_syms --cdebug_asm_data -z --stack_size=0x300 -m"Example_F2802xLaunchPad_demo.map" --heap_size=0x200 --warn_sections

    -i"C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/lib"
    -i"C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include"
    -i"C:/ti/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/C2kLaunchPadDemo"
    -i"C:/ti/controlSUITE/development_kits/C2000_LaunchPad/F2802x_common/lib"

    --reread_libs --verbose_diagnostics --issue_remarks --xml_link_info="Example_F2802xLaunchPad_demo_linkInfo.xml" --entry_point=code_start --rom_model -o "Example_F2802xLaunchPad_demo.out"

    "./Example_F2802xLaunchPadDemo.obj" "C:/ti/controlSUITE/development_kits/C2000_LaunchPad/f2802x_headers/cmd/F2802x_Headers_nonBIOS.cmd" "C:/ti/controlSUITE/development_kits/C2000_LaunchPad/f2802x_common/lib/driverlib.lib"

    -l"C:/ti/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/C2kLaunchPadDemo/../../f2802x_common/cmd/F28027.cmd"
    -l"rts2800_ml.lib"
    -l"IQmath.lib"


    "C:/ti/controlSUITE/development_kits/C2000_LaunchPad/f2802x_examples/C2kLaunchPadDemo/../../f2802x_common/cmd/F28027.cmd",

    line 117: warning:
    memory range not found: FLASHD. on page 0
    .text : >> FLASHA | FLASHC | FLASHD. PAGE = 0
    warning: entry-point symbol other than "_c_int00" specified:



    "code_start"
    'Finished building target: Example_F2802xLaunchPad_demo.out'
    ' '

    **** Build Finished ****
    ------------------------------------------------------
  • John,

    Please look at using the examples provided within device support (~/controlsuite/device_support/f2802x/v230). Import these through CCS (not resource explorer) without copying into your workspace and they should build without issue. These provide the same examples as those in the C2000_Launchpad directory except newer.

    Regarding the examples in the C2000_launchpad directory, I installed a fresh copy of controlSUITE to my Linux machine, imported an example(without copying into workspace), made the text case edits we discussed earlier, and was able to build correctly to get the ".out". Make sure to fully delete the controlSUITE directory before re-installing. I am unable to replicate this "undefined symbol". Also make sure to select "Rebuild" project and not just "Build".

    Again, I encourage you to look at the examples in device support since these won't have issues. I have made notes to have the c2000_launchpad examples looked at and addressed for fixes.

    Best Regards
    Chris
  • OK, I pulled a random project in from f2802x/v230, in this case _Adc_TempSensorConv.

    It compiled right away.

    Woot!!!

    But it doesn't have a debugger session set up and I haven't figured out how to do that yet. I also haven't figured out how to flash an image without the debugger. I thought the little hammer would do it but it doesn't.

    I didn't see the board demo program so I went back to the original source, brought it in via your instructions, make the case change, gave IQmath.lib an absolute path and it compiled. And flashed via debug. And ran.

    Woot!!!

    I'm ready to mark this one solved.

    Three minor questions.

    Is there something I could have read that would have warned me about dangers of Resource Explorer or of copying the project into my workspace?

    I can see that I'm going to be using a lot of existing code in my next project. Can I put that project into a workspace and successfully bring in existing code? My normal way of running a project is to have a "code" director off the project file along with directories for docs, mechanical and PCB CAD and so on.

    Last question. Where can I find the GCC compiler's standard library reference for this version. I saw it once but I can't find it again for some reason.

    Thanks for all your help, Chris. This next project should sell close to a thousand units and each will have at least 1 TI processor. I would have killed for support like this from Atmel.

    Thanks again,
    John
  • John,

    Great to hear! Clean compiling is always a good start!

    We have a note in newer device documentation, but seems to be lacking for F2802x. I'll make a note to get this added. Typically it would be in the development user's guide: ~\controlSUITE\device_support\f2802x\v230\doc

    Yes, you can definitely bring code into your workspace and/or setup your own development directories. You just need to modify the include paths, linking, and etc. Here is a wiki on it: processors.wiki.ti.com/.../Include_paths_and_options (additionally there is a link in that wiki for "portable projects" which covers the same topics in additional detail)

    Also, if looking for more information on CCS project build configurations, within CCS go to Help->Help Contents->Code Composer Studio Help->Tasks->Working with CCS Projects->Configuring Projects.

    Another CCS resource: processors.wiki.ti.com/.../Category:CCSv6_Training

    This provides details for the C2000 compiler and a link to the compiler user guide as well as other information: processors.wiki.ti.com/.../GCC_Extensions_in_TI_Compilers

    Happy to assist, enjoy developing!

    Best Regards,
    Chris