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.

LAUNCHXL-F28379D: LAUNXL-F28379DCH, BOOSTXL-POSMGR, Biss-c project build error

Part Number: LAUNCHXL-F28379D
Other Parts Discussed in Thread: BOOSTXL-POSMGR, CONTROLSUITE, C2000WARE

I have LAUNCHXL-F28379D and boostxl-posmgr products. I'm trying to get data from an absolute encoder (Aksim-2) communicating with Biss-C. I created a clean project by selecting "empty_bitfeld_driverlib_project" from the Resource Explorer section. I added the biss library to the project as stated in the "sprui37.pdf" file. But
bissc_data_struct.spi = & SpibRegs;
PM_bissc_setupPeriph ();
When I add the code I get a compilation error. I will share the error output below. Has anyone done this procedure before? Or how can I solve this problem?

  • For the symbol error #10056:

    You can remove the GlobalVariablesDefs object file from the controlSUITE position manager library by using the archiver.

    Refer to the Assembly Tool User's Guide (http://www.ti.com/lit/spru513)  for the archiver options.    The archiver, ar2000.exe, will be in the bin directory where your compiler is installed.

    For the program will not fit error

    It looks like the linker is trying to fit the program into the peripheral register file areas.  There should be another .cmd file that describes all of the program/data memory on the device and allocates appropriately.  Is this .cmd file missing from the project?

  • When I do the operation you specified Archiver ar2000.exe, a different error occurs. Can you try creating a project for LAUNXL-F28379D?

    There are two cmd files in the project as 2837xD_FLASH_lnk_cpu1.cmd and F2837xD_Headers_nonBIOS_cpu1.cmd.

    The "program will not fit error" solution

    "CLB1_LOGICCFG: origin = 0x003000, value of length = 0x000040"

    I fixed it by updating it to

    "CLB1_LOGICCFG: origin = 0x003000, length = 0x000080"

    Is this solution correct?

  • Can I run C2000ware by adding this library?

  • In C2000Ware, the unresolved symbols shown in the error are defined in F2837xD_clb.h. If you add # include of F28x_Project.h to your bissc.h file.  This will include the needed headers. (C:\ti\c2000\C2000Ware_3_03_00_00\device_support\f2837xd\common\include\F28x_Project.h)

    Refer to examples in 

    Regards

    Lori

  • Hi,
    #include "F28x_Project.h" is already attached in my biss.h file. Although I am getting the error.

    * C: \ ti \ controlSUITE \ libs \ app_libs \ position_manager \ v01_02_00_00 \ bissc \ examples \ PM_bissc_SystemTest

    * C: \ ti \ controlSUITE \ development_kits \ BOOSTXL_POSMGR \ v01_01_00_00 \ bissc-F28379DLpad-S2 \ examples \ PM_bissc_SystemTest

    * www.ti.com/.../SPRUI37

    I refer to these three files. Is there a different example I can review? Couldn't find an example with C2000Ware?

  • Hello,

    I am a bit confused by your feedback and the directories you mentioned.  I thought you were attempting to include the library in a project using the latest C2000Ware support files? 

    user4928118 said:
    #include "F28x_Project.h" is already attached in my biss.h file. Although I am getting the error.

    Does your project point to the "F28x_Project.h" file in ControlSUITE or C2000Ware? 

    • Check the project properties -> c2000 Compiler -> include options for the directories searched for .h files. 
    • The latest version of the header files is in c2000Ware and it includes the CLB definitions.  

    user4928118 said:
    I refer to these three files. Is there a different example I can review? Couldn't find an example with C2000Ware?

    There isn't an example today in c2000ware.  However in the device_support directory there are bit-field examples that I suggest starting with.  

    Regards

    Lori

  • You are right, it has been a bit complicated. I can explain it as follows.
    I created an empty project based on c2000Ware bitfield + driverlib. (Resource Explorer-> C2000Ware-3.04.00-> Devices -> F28379D-> Driverlib + Bit-Field Empty Example CCS Project-> import). Here I aim to use Aksim-2 Biss-c encoder.

    But you don't have C2000Ware instance for posmgr biss-c library. I am trying to add to this by looking at the ControlSuite examples. I am also encountering these errors here.

    I haven't found a solution yet, and I'm falling behind in my project.

    "Does your project point to the" F28x_Project.h "file in ControlSUITE or C2000Ware?" You asked in the form. F28x_Project.h file is currently in c2000Ware.

  • Ok that makes sense and aligns with what I thought the goal was.  If the error left is what is shown in this screenshot - I searched C2000ware and found the structures are defined in F2837xD_clb.h and the instance is created in F2837xD_GlobalVariablesDefs.c in C2000Ware. 

    C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\headers\source\F2837xD_GlobalVariablesDefs.c 

    C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\common\include\F28x_Project.h --> includes F2837xD_device.h

    and C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\headers\include\F2837xD_device.h --> includes F2837xD_clb.h 

  • As you said yes. I also found them. But I have already added #include "F28x_Project.h" to the biss.h file in the project. However, there is an error in the screen image.

    It is defined in the file F2837xD_clb.h without "_" in front of it as seen in the image below, so I thought it might not be able to find it. When I edited these it still gave the same error. (my problem has not been solved, I have made the F2837xD_clb.h file to its original state.)

  • Is this file also in your project and not excluded from the build?

    C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\headers\source\F2837xD_GlobalVariablesDefs.c 

      • Check all of the include directories to make sure nothing is pointing to controlSUITE. 
      • Also check the project directory in your workspace for files - any file in the directory will be used in the project.
      • A quick way to see if a file is really being used by the tools is to insert an error into the file.  I've had cases where the wrong copy of a file was found by the tools and I did not realize it. 


    Regards

    Lori

  • Hi,

    I checked C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f2837xd\headers\source\F2837xD_GlobalVariablesDefs.c attached in my project.
    I also checked what you said. Everything seems right. But there is still an error in my c2000Ware bitfiled + driverlib project.

  • Another customer recently did this.  They summarized their steps at the end of this thread:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/973365#pi320995=2

    1. Use PM_bissc_Include.h, biss.h, biss.c, PM_bissC_Lib.lib from C:\ti\controlSUITE\libs\app_libs\position_manager\v01_02_00_00

    2. Add #include "F28x_Project.h" into biss.h

    3. Add "volatile" into BISSC_DATA_STRUCT (Otherwise, dataReady does not change.)

    4. Copy the contents of "F2837xD_Headers_clb_cpu1.cmd" into "F2837xD_Headers_nonBIOS_cpu1_eabi.cmd"

    5. Change  " .ebss            : > RAMLS6 | RAMLS7 " to  ".ebss            : > RAMGS7 | RAMGS8 | RAMGS9" of "iddk_servo_2837x_ram_link_cpu1.cmd" and

        "iddk_servo_2837x_flash_link_cpu1.cmd" 

  • I hadn't looked at this for a while. Thank you. This worked. I also share the sample project. It can be useful to other friends.

    biss_c_379d