0

我想使用 MicroC OS-II 建立一个新的嵌入式项目并使用 C++。

当我想使用 new 运算符创建一个类的实例时,我的处理器遇到了一个异常,该异常似乎来自于 new 运算符中的 malloc 调用失败。这是一个失败的例子:

testC* test = new testC();

testC 是具有整数成员变量的类。顺便说一句,我正在使用 Altera Nios 2。

经过一番研究,我得出的结论是 malloc 与 RTOS 不兼容。因此我的问题是:是否可以将 C++ 与 uC/OS-II 一起使用?或者有没有办法替换新运营商中的 malloc 调用?

到目前为止,我找不到有关此的任何其他信息。

非常感谢您的帮助。最佳,罗马

4

1 回答 1

0

我找到了一种避免使用 new 运算符同时仍保持多态性的解决方案(这是使用运算符的实际原因new)。我在堆栈(或其他地方)上创建一个对象,例如

TestC test = TestC();

在实际代码中,我引用了基类:

BaseC * base = &test;

也许这对其他人有帮助。谢谢大家。

于 2016-05-20T13:42:08.640 回答