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.

[参考译文] 编译器/TMS320F28379D:为什么使用 Code Composer Studio 进行 C++编译不支持"--enable-VTable-verife&quot

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/955301/compiler-tms320f28379d-why---enable-vtable-verify-is-not-supported-by-c-compilation-with-code-composer-studio

器件型号:TMS320F28379D

工具/软件:TI C/C++编译器

在嵌入式应用程序中使用 C++可以实现动态链接操作、这对于 ObjectOrientation 方法非常有利。

但是:标准 VTABLE 实现容易出错:

未经充分测试的软件(开发期间)或针对硬安全关键级别的任何数据错误都会破坏数据内部的虚拟表指针(在 RAM 中)。 任何机制都不会检测到它、执行了错误的机器代码、应用程序受到干扰。 此类错误很难调试、对于安全关键型应用而言是不可接受的。

因此不应使用虚拟操作。 这个问题由 gcc 编译器团队解决、  并且引入了--enable-vtable-verify 选项、但 C++社区的注意力太少。 有些人似乎不承认这一问题。  

我认为这是一个重要问题。   某些不兼容的现有库(未使用--enable-vtable-verify 进行翻译)可能是 PC 开发人员的问题、但不适用于嵌入式目标开发人员(大多数库未使用这些库)。 对于嵌入式目标、安全性很重要。  

对于使用虚拟操作的算法、增加的计算时间越短、这不应该成为问题(提高安全性的代价)。

这是一个一般问题。 应在编译器套件的后续版本中解决该问题。  

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

    感谢您的建议。  我提交了 EXT_EP-10096条目 以请求将此功能添加到 C28x 编译器中。  欢迎您使用我签名中的以下链接进行操作。

    谢谢、此致、

    乔治