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.
工具/软件: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
Clark、
我在 Mac CCSv10中看到 C2000的20.2.1 LTS 编译器。
有什么显示吗? 我知道最初发布时出现了问题。 这可能是缓存更新站点的问题。
您可以清除该选项、但转到首选项对话框。 然后导航到此处、更新站点列表如下所示。 选择 Mac 编译器更新站点、然后单击重新加载按钮。
我看到的另一个问题是 CCS 在安装后无法找到编译器。 如果我单击此处的"重新发现"以修复它:
另一个选项是从下面的站点手动下载编译器。 完成此操作后、请确保返回首选项对话框中的编译器部分、指定其安装位置、然后单击刷新让 CCS 找到它。
http://www.ti.com/tool/download/C2000-CGT-19
此致、
John
谢谢 John! 您的及时建议帮助我解决了我的问题。
我的问题是 CCS 无法识别新版本。 由于下载列表中已安装、因此未显示该文件。 当我取消选中"隐藏已安装的软件"按钮时、我在那里看到了新版本。 进入 CCS 首选项并刷新 有助于 CCS 找到新版本。 然后、我进入项目首选项、选择了新版本和嘣!...我的应用程序已编译。
这正是我离开 ESP 和 ST 的原因。 TI 的支持以及您的培训服务和软件质量使我非常忠于 TI。
干得不错、John、
Clark
Clark、
好极了。 非常感谢您的反馈。
通常、如果编译器是从 CCS 安装的、CCS 应自动发现编译器。 但是、现在存在一个问题。 这一点应在我们的下一次更新(10.1)中讨论。 发现软件包可能会很慢、我们通常在每次启动 CCS 时都这么做。 当发现发生时、我们进行了一些优化来改进。 更新应触发发现、但该发现无法正常工作
此致、
John