主题中讨论的其他器件:TDA4VH
您好、TI 专家!
客户正在使用 TDA4VH SDK9.0
他们应用的工具链为 ti-cgt-armllvm_3.0.STS
根据以下链接、从 tiarmclang 编译器工具的版本3.0.STS 开始、可以在调用编译器以支持 C++异常时指定-fexceptions 编译器选项。
https://software-dl.ti.com/codegen/esd/cgt_public_sw/ARM_LLVM/3.0.0.STS/README.html
客户正在尝试验证上述链接中所示的示例。

客户已遵循上述链接示例中显示的源代码、并使用 Makefile 来链接 -fexceptions。 可以在下面下载源代码和 makefile。
e2e.ti.com/.../678873F4BDEE00A7CE7811AED7D295A9.zip
编译上述代码后、客户还在下面提供了一个可执行文件。 可以直接运行我们的 EVM 板。
e2e.ti.com/.../E93AF3D3A49760B26981775C3C15A750.zip
运行可执行文件后、输出如下所示。


根据结果、我们可以看到、如果输入年龄等于或大于18、则输出正常。
然而,当输入年龄小于18时,它将会抛出并捕获,在这种情况下,当它到达代码行 std :: COUT 在捕获内,它将突然退出。
小于18岁的输出结果与上面链接的示例不同。

总之、 在 3.0.STS 上编译 C++异常是可以的、但运行可执行文件时、该文件将在 throw & catch 分支中描述了该问题。
我是否可以知道、如果我们的 ti-cgt-armllvm_3.0.STS 在使用 C++异常(如-fexceptions )方面仍然存在一定的限制?
非常感谢!
凯文









