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.

28377D的混合汇编例子编译通不过,很困扰

Other Parts Discussed in Thread: CONTROLSUITE

我将controlSUITE中的28377D的工程例子导到CCS6.1中编译,通不过,我试了下另外的一个程序,可以通过.

报错信息如下:

'Building file: C:/ti/controlSUITE/device_support/F2837xD/v120/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/fir32.asm'
'Invoking: C2000 Compiler'
"C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/bin/cl2000" -v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 --include_path="C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/include" --include_path="C:/ti/controlSUITE/device_support/F2837xD/v120/F2837xD_headers/include" --include_path="C:/ti/controlSUITE/device_support/F2837xD/v120/F2837xD_common/include" --include_path="C:/ti/controlSUITE/device_support/F2837xD/v120/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/" -g --define=CPU1 --diag_warning=225 --display_error_number --diag_suppress=10063 --diag_suppress=10068 --diag_suppress=1311 --diag_wrap=off --preproc_with_compile --preproc_dependency="fir32.pp"  "C:/ti/controlSUITE/device_support/F2837xD/v120/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/fir32.asm"
1 Assembly Error, No Assembly Warnings
"C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\003004", ERROR!   at line 3013: [E0800] Instructions not permitted in structure/union definitions

 RPC            .bits 16             ; bit field, 16 bits, 16 bit offset
>> Compilation failure


Errors in Source - Assembler Aborted
gmake: *** [fir32.obj] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

说是一个指令错误(就是CLA定义中的一个寄存器UNION),但是我程序里根本没有操作过这个位置啊....到底是什么原因....程序见附件,就是TI的原版程序.

fir32.asm
  • 你的ControSUITE版本比较旧(F2837xD/v120),建议升级下。我这边F2837XD的例程已经到了V180了。我刚刚试了下,编译通过,没错误的。

    'Building file: C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/fir32.asm'
    'Invoking: C2000 Compiler'
    "C:/ti/ccsv6_1/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/bin/cl2000" -v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 --include_path="C:/ti/ccsv6_1/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/include" --include_path="C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_headers/include" --include_path="C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_common/include" --include_path="C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/" -g --define=CPU1 --diag_warning=225 --display_error_number --diag_suppress=10063 --diag_suppress=10068 --diag_suppress=1311 --diag_wrap=off --preproc_with_compile --preproc_dependency="fir32.pp" "C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/fir32.asm"
    'Finished building: C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_examples_Cpu1/cla_adc_fir32/cpu01/fir32.asm'
    ' '
    'Building target: cla_adc_fir32_cpu01.out'
    'Invoking: C2000 Linker'
    "C:/ti/ccsv6_1/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/bin/cl2000" -v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 -g --define=CPU1 --diag_warning=225 --display_error_number --diag_suppress=10063 --diag_suppress=10068 --diag_suppress=1311 --diag_wrap=off -z -m"cla_adc_fir32_cpu01.map" --stack_size=0x100 --warn_sections -i"C:/ti/ccsv6_1/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/lib" -i"C:/ti/ccsv6_1/ccsv6/tools/compiler/ti-cgt-c2000_6.4.2/include" -i"C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_common/cmd" -i"C:/ti/controlSUITE/device_support/F2837xD/v180/F2837xD_headers/cmd" --reread_libs --display_error_number --xml_link_info="cla_adc_fir32_cpu01_linkInfo.xml" --rom_model -o "cla_adc_fir32_cpu01.out" "./F2837xD_Adc.obj" "./F2837xD_CodeStartBranch.obj" "./F2837xD_DefaultISR.obj" "./F2837xD_EPwm.obj" "./F2837xD_GlobalVariableDefs.obj" "./F2837xD_Gpio.obj" "./F2837xD_Ipc.obj" "./F2837xD_PieCtrl.obj" "./F2837xD_PieVect.obj" "./F2837xD_SysCtrl.obj" "./F2837xD_usDelay.obj" "./cla_adc_fir32_cpu01.obj" "./fir32.obj" -l"libc.a" -l"rts2800_fpu32.lib" -l"2837xD_RAM_CLA_lnk_cpu1.cmd" -l"F2837xD_Headers_nonBIOS_cpu1.cmd"
    <Linking>
    'Finished building target: cla_adc_fir32_cpu01.out'
    ' '

    **** Build Finished ****

  • 非常感谢!!我更新了下后就好了;我还想问下,之前那个编译错误,指出了某一行有问题,但是我根本不知道它指的是哪个文件里的这一行;请问这个文件我怎么找到它?还是只是一个临时文件,我没法看到它?还有问几个其它的问题,我怎么下载到最新库文件的说明?controlSUITE中有个LIBRARY文件夹,是不是这个就是全部了,还有没有其它的库可以下载到,比如那个本征函数库?(intrinsic),是在哪里下到?另外怎么指定函数在哪个运算单元执行CPU/FPU/VCU/TMU,直接调库函数么?

  • 1. 是的。C:\ti\controlSUITE\libs里面包含了所有的库。每个库里面都有有个doc文件夹,里面有库的说明及用法,例如:《controlSUITE_C28x_FPU_FastRTS.pdf》 就在 C:\ti\controlSUITE\libs\math\FPUfastRTS\V100\doc;

    2. 你说的本征函数,是否可以举个例子? 很多都在编译器手册《TMS320C28x Optimizing C/C++ Compiler》里面找到:http://www.ti.com/lit/ug/spru514i/spru514i.pdf 

    3. FPU/ VCU/TMU等的使用方法,可以对比我们的例程。另外,在对应的库中也有对应的使用方法,例如:FPU的《FPU-SW-LIB-UG.pdf》在C:\ti\controlSUITE\libs\dsp\FPU\v1_50_00_00\doc