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.

CCS/ucd3138: Where are the source files for UCD3138 in Code Composer tree?

Part Number: UCD3138
Other Parts Discussed in Thread: UCD3138, UCD3138A64

Tool/software: Code Composer Studio

Hi,

I've spent all day trying to install Code Composer and be able to develop for UCD3138. The persisting problem is that not all or none of the necessary files get installed.

I've tried online installers, offline installers, for Linux, for Windows - all not good. The best I've got was half success under Linux: header files were present in ccs_base/arm/include/digital_power/UCD3138, so that I might compile, but not a single file that might define symbols was anywhere, so that linking the code was not possible (a source code file, linker script, assembler nor precompiled binary - I've searched the whole directory tree with grep). Under Windows the header files were missing too.

So, please, let me know where in the tree of Code Composer the files for UCD3138 should be located. Which "package" in the offline installer should contain them? Is it possible to get those files without the whole Code Composer?

I need: header files defining registers, source code/object files defining the corresponding symbols for linking and linker script (preferably for GNU GCC).

Best regards,

Adam

  • Adam,

    I don't see the header files in my CCSv7.1 install on Windows either.  I do see them in my 7.2 beta release.  

    When I create a new project these are the files that I see added to it.  There are a couple of linker command files and a .asm file.  

    This first zip contains all of the cyclone_* linker command files that I could find in my installation.  The were located in ccsv7/ccs_base/arm/include

    cyclone.zip

    And here are the assembly files.  They were also in ccsv7/ccs_base/arm/include

    load_UCD3138.zip

    Here is the complete set of header files as well.  These were in a folder called digital_power under the same ccsv7/ccs_base/arm/include folder.

    digital_power.zip

    I do not see any .lds files for GCC support.  If you like I can ask for a UCD3x expert to comment on GCC support.  I don't believe that is something that is provided today.

    Regards,

    John

  • Hi John,
    thank you for the answer, but all these files are already present in my "most successful" installation under Linux.
    Are you able to build this code? I get an error saying that the symbol FeCtrl0Regs is undefined (linker complaint).


    #include <cyclone_device.h>
    int main(void)
    {
    FeCtrl0Regs.EADCCTRL.bit.AFE_GAIN = 2;
    return 0;
    }


    What can you see under "Binary" and "Debug" in the project tree?

    Best regards,
    Adam
  • Adam,

    I assume this is what you are getting:

    undefined first referenced
    symbol in file
    --------- ----------------
    FeCtrl0Regs ./main.obj

    error #10234-D: unresolved symbols remain


    When I look at the header file it has

    extern volatile struct FE_CTRL_REGS FeCtrl0Regs;

    But like you say there is no library or source file for it.

    My suspicion is that there is a standard library for working with UCD that needs to be linked in. I will ping the power management team. I suspect that they can answer quickly for us.

    Regards,
    John
  • Hello John,

    yes, exactly, that's what the TI toolchain says, and that's right, all I have found is this "extern" declaration.
    Maybe the definitions are hidden somewhere in ar archived lib files - but from what I've seen by peeking inside, the provided static libraries are just "c" libraries.

    Yes, please, ask the power management team.

    Thanks,
    Adam
  • Adam,

    Here is the information that I received from the digital power team:

    I don't have a UCD3x board but I will also try the above steps to see if I can get projects to link.

    Regards,

    John

  • I was able to import the first lab from the training labs package. It was using an old version of the TI ARM compiler so I installed that from Window -> Install New Software.

    Once I did that I could build the lab and I was able to add the code
    FeCtrl0Regs.EADCCTRL.bit.AFE_GAIN = 2;

    Note that the project uses some "linked" files so if you copy the project into your workspace on import you will need to adjust their locations.

    Regards,
    John
  • Hi John,

    thank you - this looks like the solution to my problem. I would have never guessed this myself.

    Best regards,

    Adam

  • And one more thing - I have figured it out to download "Digital Power Studio", but I can use it only to prepare code for configuring filter coefficients. Is there a tool that would prepare similar code for configuring operation of modules and interconnections between them (abstracting from topology, if possible)? These modules are configured by a vast number of registers and it's easy to overlook or misinterpret something. A kind of "graphical configurator" would be very helpful.
  • Sorry Adam I have no idea. Someone in the Digital Power forum would be better able to help.

    Regards,
    John
  • OK, I'll ask there.
    Thanks and best regards,
    Adam
  • Hi again,

    I have one more question related to the toolchain.

    The source code for Lab1 has the directive to

    #include "Cyclone_Device.h"

    (capitalized).

    Code Composer 6 is able to build the code, but:

    1) In my system there is no file Cyclone_Device.h, just cyclone_device.h (I've been looking everywhere). Does the TI toolchain ignore the case in the filename?

    2) The build process returns a warning "This project contains 9 unresolved buildable linked resource(s). The project may not build as expected." but no details are given - how can I make the toolchain tell what was not resolved? Usually failed resolution prevents linking.

    Best regards,

    Adam

  • Adam,

    On windows it should be case insensitive but on Linux or Mac the case matters.

    You can change any remark or warning to be an error in the diagnostic section of the project options.  You just need to know the id which should be shown in the console.  Below I have 225 set to be a warning but if I wanted that to be an error I would enter that number in the treat diagnostic as error box.

    Regards,

    John

  • Hi John,

    the build was performed under Linux, so I guess that the compiler "ignores" the case.

    The "unresolved buildable linked resource(s)" was about missing files. Browsing through various settings I accidentally found a table listing files which were used for the build and which were not found. This message appeared because I copied only startup and linker files for UCD3138A64, ignoring the remaining 3 device versions (and there were 3 files per device), and the training Lab1 project, which I was building, apparently wanted to make outputs for all versions. Of course I don't remember where the table was.

    Best regards,
    Adam