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.

[参考译文] CCS/TMS320F28379D:在 ccs8中启用异常处理

Guru**** 2039090 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/782712/ccs-tms320f28379d-enabling-exception-handling-in-ccs8

器件型号:TMS320F28379D
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

您好!

我想使用 CCS 中的异常处理功能。 默认情况  下,异常选项是禁用的,因此我通过“属性”>“高级选项”>“语言选项”启用了该选项。

 由于 C 语言不支持异常处理,因此我启用了语言选项下的“将 C 文件视为 C++文件”选项。  

但是、当我构建代码时、我会遇到以下错误:

>>编译失败
subdir_rules.mk:65:目标'F2837xD_PieVect.obj'的配方失败
"C:/ti/c2000/C2000Ware_1_00_06_00/device_support/f2837xd/common/source/F2837xD_PieVect.c、第295行:错误#145:类型"const PIE_VECT_TABLE *"的值不能用于初始化类型"UINT32 *"的实体
"C:/ti/c2000/C2000Ware_1_00_06_00/device_support/f2837xd/common/source/F2837xD_PieVect.c、第296行:错误#145:"volatile PI_VECT_table *"类型的值不能用于初始化"UINT32 *"类型的实体
在编译"C:/ti/c2000/C2000Ware_1_00_06_00/device_support/f2837xd/common/source/F2837xD_PieVect.c "时检测到2个错误。
Gmake:***[F2837xD_PieVect.obj]错误1.
gmake:目标"全部"不会由于错误而重新生成。

代码中的错误行为:

uint32*源=&PieVectTableInit;
uint32* dest =&PieVectTable;

从指针的角度来看、我知道的是 void *无法在 C++中定义。

但由于缺乏知识、我不知道谁要根据 C++格式更改行。

下面我将发布启用异常和 C 至 C++转换选择的屏幕截图。

此致、

Ashwin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我对 C2000Ware 还不够熟悉、但可以猜测、它没有记录在案或经过测试、可以构建为 C++。   

    将 C 文件编译为 C++、并启用异常、不会实现太多的效果。  假设此 C 代码由名为 parent 的 C++函数调用、而此 C 代码又调用另一个名为 child 的 C++函数、子函数抛出异常。  这种方式的建立意味着异常确实会从子级通过 C 代码传播到父级。  除了这种不寻常的情况外,没有理由这样做。

    谢谢、此致、

    乔治