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.

Compiler/SM320F28335-HT: Having problems integrating C2000Ware into my SYS/BIOS project for ADC functionality

Part Number: SM320F28335-HT
Other Parts Discussed in Thread: C2000WARE, TMS320F28335

Tool/software: TI C/C++ Compiler

I'm trying to add ADC functionality to my F28335 SYS/BIOS project and am currently having problems integrating C2000Ware. I'm primarily following the F2833x_DEV_USER_GUIDE.pdf as well as the ADC example guide here:
https://processors.wiki.ti.com/index.php/SYS/BIOS_and_controlSUITE_ADC_Example#Starting_Point

I believe that my main issue thus far is that I'm not sure what linker file to use for my RAM sectioning. I've currently tried the following files:

  • 28335_RAM_lnk.cmd in C2000Ware device_support
  • F28335.cmd in the ccs920 installation
  • TMS320F28335.cmd in the bios installation

It seems that TMS320F28335.cmd provides the most success as the other two give me an error relating to missing PIEVECT.

warning #10247-D: creating output section ".cio" without a SECTIONS specification
"C:/ti/C2000Ware_2_00_00_03_Software/device_support/f2833x/headers/cmd/DSP2833x_Headers_BIOS.cmd", line 139: warning #10097: memory range not found: PIEVECT on page 1
"C:/ti/C2000Ware_2_00_00_03_Software/device_support/f2833x/headers/cmd/DSP2833x_Headers_BIOS.cmd", line 139: error #10099-D: program will not fit into available memory. run placement with alignment/blocking fails for section "PieVectTableFile" size 0x100 page 1

With TMS320F28335.cmd I can at least build the program; however when I add a call to InitSysCrtl() (following the ADC example project), the linker can't seem to find the ADC_cal function.

<Linking>

undefined first referenced
symbol in file
--------- ----------------
_ADC_cal ./DSP2833x_Adc.obj

error #10234-D: unresolved symbols remain
warning #10063-D: entry-point symbol other than "_c_int00" specified: "code_start"

TMS320F28335.cmd defines ADC_CAL in PAGE 0, and later "Allocate ADC_cal function" with .adc_cal, so I'm not sure what the problem is. Furthermore, when I add the MemCopy call after that I get an undefined reference to that as well, although I'm not sure where that's supposed to be defined.

Any help with this would be appreciated. Thanks!

Martin Dillon

  • hi ,

    Martin Dillon said:
    • 28335_RAM_lnk.cmd in C2000Ware device_support
    • F28335.cmd in the ccs920 installation
    • TMS320F28335.cmd in the bios installation

    Please use 28335_RAM_lnk.cmd if using ONLY  SARAM blocks on the 28335 device else use 28335.cmd both in the C2000Ware device_support under common/cmd.

    Also you would need to use DSP2833x_Headers_BIOS.cmd or DSP2833x_Headers_nonBIOS.cmd also in the C2000Ware device_support under headers / cmd.

    Martin Dillon said:
    It seems that TMS320F28335.cmd provides the most success as the other two give me an error relating to missing PIEVECT.

    This is because the DSP2833x_Headers_BIOS.cmd has sections on the peripherals which may not be included in the project .

    Martin Dillon said:
    With TMS320F28335.cmd I can at least build the program; however when I add a call to InitSysCrtl() (following the ADC example project), the linker can't seem to find the ADC_cal function.

    is the DSP2833x_ADC_cal.asm added to the example ?

    My suggestion is to import and check one of the C2000ware examples as refernce for settings and content .

    C2000Ware\device_support\f2833x\examples\adc_dma

    Regards.

     

  • It turned out that my problem was that I was missing the DSP2833x_ADC_cal.asm file in my project, thank you! After adding that and the DSP2833x_Adc.c and DSP2833x_MemCopy.c files to my project, I was able to build and run successfully on my target hardware.

    The linker files I ended up using successfully for my project were the

     DSP2833x_Headers_BIOS.cmd - C:\ti\C2000Ware_2_00_00_03_Software\device_support\f2833x\headers\cmd\DSP2833x_Headers_BIOS.cmd
     TMS320F28335.cmd - C:\ti\bios_6_76_03_01\packages\ti\platforms\tms320x28\include\TMS320F28335.cmd

    Thanks!
    Martin Dillon