主题中讨论的其他器件:LAUNCHXL-F28379D、 TMS320F28377D、 BOOST-DRV8711、 C2000WARE
工具/软件:TI C/C++编译器
我遇到了与这些问题相关的问题:
Compiler/LAUNCHXL-F28379D:Compiler crashes on function pointer call
和
编译器/TMS320F28377D:ti-CGT-C2000_20.2.0.LTS 的编译器版本存在错误...
于2020年4月3日发布。
与相关问题一样、每当我取消对函数指针调用的注释时、编译器也会崩溃。
void (* DispFunc[4])(uint16_t);
空 initDisplay(void)
{
//设置函数指针
DispFunc[0]= SET_nSleep;
DispFunc[1]= SET_nRESET;
DispFunc[2]= SET_NumSteps;
inituart();
}
空 ProcessDisplay()
{
IF (显示)
{
uint16_t MessageType = receivedChars[0]<<8 + receivedChars[1];
uint16_t displayData = receivedChars[2]<<16 + receivedChars[3]<<12 + receivedChars[4]<<8 + receivedChars[5];
//DispFunc[MessageType](displayData); <<<<<<<<<< 取消注释会导致编译器崩溃
DispCharRcvd = false;
}
}
我尚未创建测试用例、但如果需要、我可以创建测试用例。 我还包括了我的 display.pp 文件。
我的完整控制台消息如下所示:
****为项目 BOOST-DRV8711_F280049C 构建配置 CPU1_RAM ****
/Applications/ti/ccs1000/ccs/utils/bin/gmake -k -j 3 all -O
编译文件:"../display.c"
调用:C2000编译器
"/Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -off --include_path="/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C /Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C/device /Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include --include_path=fpu32 --include_path="--include_path="/Applications/ti/c2000/C2000Ware_2_01_00_00/driverlib/f28004x/driverlib --include_display_suppression-pred=100abi_display-display-display_suppress-pred=raidaturb.abi-display_display_supu.abi_decontinu.cpu.abi_supu.cpu.abi-display-supu.abi_supu.abi-display_supu.cpu.abi-display_supu.abi_supu.abi-display_supu.abi-display_supu.ab
>>编译失败
subdir_rules.mk:7:目标'Display.obj'的配方失败
内部错误:/Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/acia2000遇到段错误
处理函数时(未知或文件范围)文件(未知)行0
这是由 TI EABI C/C++解析器中的缺陷导致的。
TI 客户支持可能会建议解决方法来避免这种情况。
升级到编译器的最新版本可能会解决此问题。
在 E2E 支持论坛中联系 TI、网址 为 http://e2e.ti.com 、位于
"开发工具"、"TI C/C++编译器"。 请参阅标题为的链接
"提交问题"。
我们需要看到整个错误消息以及完整、可重现的消息
包括所有命令行选项的测试用例。
包含由选项--preproc_with_comment 创建的.pp 文件
gmake:***[display.obj]错误1.
编译文件:"../main.c"
调用:C2000编译器
"/Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -off --include_path="/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C /Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C/device /Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include --include_path=fpu32 --include_path="--include_path="/Applications/ti/c2000/C2000Ware_2_01_00_00/driverlib/f28004x/driverlib --include_display_suppression-main=100abi_driag.abi=mait_suppress-out-pred_probature-board.abi_decontinu.abi_decontinu".
建筑完工:"../main.c"
编译文件:"../device/f28004x_codestartbranch.asm
调用:C2000编译器
"/Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -off --include_path="/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C /Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include --include_path=fpu32 --include_path="--include_path="/Applications/ti/c2000/C2000Ware_2_01_00_00/driverlib/f28004x/driverlib --expression_expression-device-expression-expression-expression-/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C/device --ategra-code.comprendat_debaturature-board-express-express-trab-ategra-rand_decontinu.ate-board-express-express-ature=/device/f28004x_codestartbranch.asm --rand_debrand_debus-express-ature-board.abi_debotrand_debotrand_decontinu.ature-inu.abi-board-ex-ex-
已完成构建:"./device/f28004x_codestartbranch.asm
编译文件:"../device/device.c
调用:C2000编译器
"/Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -off --include_path="/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C /Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include --include_path=fpu32 --include_path="--include_path="/Applications/ti/c2000/C2000Ware_2_01_00_00/driverlib/f28004x/driverlib --include_display_suppression-out-prob_device-pred=/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C/device /device/device.c --board_suppression-out-pred_probature-board-out-board-board-board-pred_supertion_di_di_diagecontinu.abi-board.abi_supert.abi-board.abi_supert.abi_probulation="-out-out-board.abi-board.abi-board.abi-display_supert.abi-board.abi=
已完成构建:"./device/device.c
编译文件:"../utility.c"
调用:C2000编译器
"/Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/bin/cl2000 -v28 -ml -mt --cla_support=cla2 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu0 -off --include_path="/Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C /Users/clark/Documents/CCS_Stepper/BOOST-DRV8711_F280049C/device /Applications/ti/ccs1000/ccs/tools/compiler/ti-cgt-c2000_20.2.0.LTS/include --include_path=fpu32 --include_path="--include_path="/Applications/ti/c2000/C2000Ware_2_01_00_00/driverlib/f28004x/driverlib --include_display_suppression-pred=100abi_driag.abi=prob.abi_decontinu.use-board-board.abi_supu.abi_display-board.probulation=rand_decontinu".
"./utility.c"、第728行(第32栏):建议#3195-D:(性能) EABI 双精度为64位、而 COFF 为32位。 考虑将双精度数更改为浮点数、以提高 FPU32模式下的性能。
"./utility.c"、第728行(第68栏):建议#3195-D:(性能) EABI 双精度为64位、而 COFF 为32位。 考虑将双精度数更改为浮点数、以提高 FPU32模式下的性能。
"./utility.c"、第728行(第68栏):建议#2615-D:(性能)使用-fp_mode=relaxed 为 FP 分部启用 TMU 硬件支持。
"./utility.c"、第728行(第38栏):建议#3195-D:(性能) EABI 双精度为64位、而 COFF 为32位。 考虑将双精度数更改为浮点数、以提高 FPU32模式下的性能。
"./utility.c"、第728行(第40栏):建议#3195-D:(性能) EABI 双精度为64位、而 COFF 为32位。 考虑将双精度数更改为浮点数、以提高 FPU32模式下的性能。
"./utility.c"、第728行(第96栏):建议#3195-D:(性能) EABI 双精度为64位、而 COFF 为32位。 考虑将双精度数更改为浮点数、以提高 FPU32模式下的性能。
"./utility.c"、第728行(第75栏):建议#3195-D:(性能) EABI 双精度为64位、而 COFF 为32位。 考虑将双精度数更改为浮点数、以提高 FPU32模式下的性能。
已完成构建:"./utility.c"
gmake:目标"全部"不会由于错误而重新生成。
****构建完成****
我注意到,上述问题之一的解决办法如下:
C28编译器版本20.2.1.LTS、可修复此问题、从4/9/20开始提供。
您可以使用 CCS 菜单在 CCS 中安装:
Help -> Install Code Generation Compiler Tools...(帮助->安装代码生成编译器工具...)
当我转到“帮助”>“安装代码生成编译器工具”时,我看不到任何升级。 我正在使用 TI v20.2.0.LTS、但找不到 v20.2.1.LTS。
您是否需要测试用例或任何其他信息来提供此问题的解决方案?
Clark