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.

Sys/Bios 6.32 example does not build out of the box for delfino

Other Parts Discussed in Thread: TMS320C28346, SYSBIOS

IPC:1.23.2.27

SYS/BIOS: 6.32.2.39

CCV4: 4.2.4

I am creating a new project using task example of the SYS/BIOS.Here is my cfg file

0601.task.zip

I get following errors/warnings.

**** Build of configuration Debug for project hvps ****

 

C:\Texas Instruments\ccsv4\utils\gmake\gmake -k all

'Building file: ../task.cfg'

'Invoking: XDCtools'

"C:/Texas Instruments/xdctools_3_22_01_21/xs" --xdcpath="C:/Texas Instruments/bios_6_32_02_39/packages;C:/Texas Instruments/ipc_1_23_02_27/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C28_float -p ti.platforms.tms320x28:TMS320C28346 -r release -c "C:/Texas Instruments/ccsv4/tools/compiler/c2000" --compileOptions "-g --optimize_with_debug" "../task.cfg"

making package.mak (because of package.bld) ...

generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

configuring task.p28FP from package/cfg/task_p28FP.cfg ...

warning: ti.platforms.tms320x28.Platform: "C:/Texas Instruments/xdctools_3_22_01_21/packages/ti/platforms/tms320x28/Platform.xs", line 377: ti.platforms.tms320x28.Platform.Instance#0 : The PLL type is not assigned, so the Boot module will not configure the PLL.

error: ti.sysbios.BIOS: "C:/Texas Instruments/bios_6_32_02_39/packages/ti/sysbios/BIOS.xs", line 198: ti.sysbios.BIOS : BIOS.cpuFreq is undefined. You must define the CPU frequency in your application configuration. For example, if the PLL is being configured for 100MHz, add this to your application configuration script: BIOS.cpuFreq.lo = 100000000;

js: "C:/Texas Instruments/xdctools_3_22_01_21/packages/xdc/cfg/Main.xs", line 130: Error: Configuration failed!

gmake.exe: *** [package/cfg/task_p28FP.xdl] Error 1

js: "C:/Texas Instruments/xdctools_3_22_01_21/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

gmake: Target `all' not remade because of errors.

Build complete for project hvps

sunil

  • BTW adding

    BIOS.cpuFreq.lo = 300000000

     

    does not help much. Here are the warnings/errors.

     

    warning: ti.platforms.tms320x28.Platform: "C:/Texas Instruments/xdctools_3_22_01_21/packages/ti/platforms/tms320x28/Platform.xs", line 377: ti.platforms.tms320x28.Platform.Instance#0 : The PLL type is not assigned, so the Boot module will not configure the PLL.

    warning: ti.sysbios.BIOS: "C:/Texas Instruments/bios_6_32_02_39/packages/ti/sysbios/BIOS.xs", line 634: ti.sysbios.BIOS cpuFreq.lo: BIOS.cpuFreq does not match the frequency computed from the PLL configuration in the Boot module. Remove the BIOS.cpuFreq line from your .cfg script to allow the Boot module to set the frequency.

    generating custom ti.sysbios library makefile ...

    Starting build of library sources ...

    making C:/PowerLink_HVPS_WSDT/hvps/hvps/src/sysbios/sysbios.lib ...

    cl28FP C:/TEXASI~1/bios_6_32_02_39/packages/ti/sysbios/BIOS.c ...

    asm28FP C:/TEXASI~1/bios_6_32_02_39/packages/ti/sysbios/family/c28/Clobber_asm.s28 ...

    asm28FP C:/TEXASI~1/bios_6_32_02_39/packages/ti/sysbios/family/c28/Hwi_asm.s28 ...

    asm28FP C:/TEXASI~1/bios_6_32_02_39/packages/ti/sysbios/family/c28/Hwi_disp.s28 ...

    asm28FP C:/TEXASI~1/bios_6_32_02_39/packages/ti/sysbios/family/c28/IntrinsicsSupport_asm.s28 ...

    asm28FP C:/TEXASI~1/bios_6_32_02_39/packages/ti/sysbios/family/c28/TaskSupport_asm.s28 ...

    ar28FP BIOS.obj c28_Clobber_asm.obj c28_Hwi_asm.obj c28_Hwi_disp.obj c28_IntrinsicsSupport_asm.obj c28_TaskSupport_asm.obj ...

    Build of libraries done.

    cl28FP package/cfg/task_p28FP.c ...

    'Finished building: ../task.cfg'

    ' '

    1 file(s) copied.

    'Building file: ../task.cfg'

    'Invoking: XDCtools'

    "C:/Texas Instruments/xdctools_3_22_01_21/xs" --xdcpath="C:/Texas Instruments/bios_6_32_02_39/packages;C:/Texas Instruments/ipc_1_23_02_27/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C28_float -p ti.platforms.tms320x28:TMS320C28346 -r release -c "C:/Texas Instruments/ccsv4/tools/compiler/c2000" --compileOptions "-g --optimize_with_debug" "../task.cfg"

    'Finished building: ../task.cfg'

    ' '

    'Building file: ../task.c'

    'Invoking: Compiler'

    "C:/Texas Instruments/ccsv4/tools/compiler/c2000/bin/cl2000" -v28 -mt -ml -g --include_path="C:/Texas Instruments/ccsv4/tools/compiler/c2000/include" --diag_warning=225 --float_support=fpu32 --preproc_with_compile --preproc_dependency="task.pp" --cmd_file="./configPkg/compiler.opt" "../task.c"

    'Finished building: ../task.c'

    ' '

    'Building target: hvps.out'

    'Invoking: Linker'

    "C:/Texas Instruments/ccsv4/tools/compiler/c2000/bin/cl2000" -v28 -mt -ml -g --diag_warning=225 --float_support=fpu32 -z -m"hvps.map" --stack_size=0x300 --warn_sections -i"C:/Texas Instruments/ccsv4/tools/compiler/c2000/lib" -i"C:/Texas Instruments/ccsv4/tools/compiler/c2000/include" --reread_libs --rom_model -o "hvps.out" -l"./configPkg/linker.cmd" "./task.obj" -l"libc.a" "../TMS320C28346.cmd"

    <Linking>

    "../TMS320C28346.cmd", line 92: warning: memory range not found: CSM_PWL on

    page 0

    "../TMS320C28346.cmd", line 92: error: run placement fails for object

    "csmpasswds", size 0x0 (page 0)

    error: errors encountered during linking; "hvps.out" not built

     

    >> Compilation failure

    gmake: *** [hvps.out] Error 1

    gmake: Target `all' not remade because of errors.

    sunil

  • OK so  here is the deal. There are two platforms for C28346. Why ? Ask TI Gurus..

    ti.platforms.control28346

    ti.platforms.tms320x28:TMS320C28346

     

    First one that is "ti.platforms.control28346" works for me. Unfortunately when you select C28346 device the second one that is "ti.platforms.tms320x28:TMS320C28346" gets automatically selected as the platform of the choice. I changed to the one that works and the warning of cpu freq. etc vanished.

    Another thing is that there is a new (to me) cmd file getting added called "TMS320C28346.cmd" I had not seen it last time I was trying to make SYS/BIOS work for me. It seem to be clashing with some internal cmd file. I deleted this new file and now my project is at least making without errors.

  • Sunil,

    A couple of things:

    1.  The ti.platforms.tms320x28 is a new generic platform for c28x devices.  By default this platform adds a linker command file to the project.  When a different platform is selected, a linker command file should not be added to the project, however, its a known problem that a linker command file is being added to the project.

    2.  The error that you got with placement of "CSM_PWL" is a result of a typo in the included linker .cmd file.  I'll file a bug to track this problem [SDOCM00082786]. Meanwhile you can work around this by modifying the linker command file that is included in the project.  The Memory segment "CSM_PWL_PROG" should be renamed "CSM_PWL".

    Judah

  • Judah,

    Thank you for the clarification. However the real question is not why that platform gets added. The real question is why it does not work ? Why is it giving cpufreq. error ?

    sunil

  • Sunil,

    The PLL error is due to a separate issue, a typo in the PLL type identification (for this device only) in one of the files for the tms20x28 generic platform.  This bug is filed with the ID: SDOCM00082788.

    Because the PLL type is not recognized, the Boot module will not configure the PLL, as the error message says.  Defining the BIOS.cpuFreq.lo value in your app configuration is then required, to tell SYS/BIOS the CPU frequency that the PLL is generating.  (By default, SYS/BIOS retrieves the frequency from the Boot module, but since it can’t configure the PLL, SYS/BIOS can’t get the frequency from the Boot module anymore.)  The new warning message about the mismatch between the Boot module frequency and the specified BIOS.cpuFreq.lo value can be ignored – it is highlighting that the Boot module is configured to set a specific frequency (but actuality it won’t, because it doesn’t recognize the PLL type), and this frequency value mismatches with what you are specifying as BIOS.cpuFreq.lo.

    If you really need the Boot module to setup the PLL, a workaround is for you to hand edit the installed file with the typo.  To do this:

    1) Locate the Platform.xs file for the tms320x28 platform.  The default install location for this file is: C:\Program Files\Texas Instruments\xdctools_3_22_01_21\packages\ti\platforms\tms320x28\Platform.xs

    2) Make a backup copy of the file.

    3) In Platform.xs replace this line:

        "TMS320C28346"  : "Type_2934x",

    With this:

        "TMS320C28346"  : "Type_2834x",

    4) Clean and rebuild the project.

    I hope this all makes sense...

    Regards,
    Scott

  • Scott,

    Thank you for the reply. Now that we are on the subject can you tell me the differences between two platforms available for C28346 ?

    sunil

  • Sunil,

    The new ti.platforms.320x28 is what we are calling the C28 “generic” platform. It is a platform that can be used for all C28 devices that SYS/BIOS supports.  Adding a device ID at the end of the platform name allows the platform internals to determine the device internal memory map and peripherals, so that the program can be built properly for the selected device.  This generic platform does not “know” about any external memory or peripherals, but just what comes with the device itself.

    I think the plan is to continue to support the pre-existing platforms (like ti.platforms.control28346) going forward, but to encourage all new development on this generic platform.

    Regards,
    Scott