MicroC OS-II с C++

Я хотел создать новый встроенный проект с использованием MicroC OS-II и использовать C++.

Когда я хочу создать экземпляр класса с использованием оператора new, мой процессор сталкивается с исключением, которое, похоже, происходит из-за сбоя вызова malloc в новом операторе. Это пример, который терпит неудачу:

testC* test = new testC();

с testC - некоторый класс с целочисленной переменной-членом. Кстати, я использую Altera Nios 2.

После некоторых исследований я пришел к выводу, что malloc не совместим с ОСРВ. Поэтому мой вопрос: возможно ли использовать C++ с uC/OS-II? Или есть способ заменить вызов malloc у нового оператора?

Пока что я не смог найти никакой дополнительной информации по этому поводу.

Большое спасибо за Вашу помощь. Бест Роман

1 ответ

Решение

Я нашел решение, чтобы избежать нового оператора при сохранении полиморфизма (что является реальной причиной использования new оператор). Я создаю объект в стеке (или где-то еще), например, с

TestC test = TestC();

и в фактическом коде я ссылаюсь на базовый класс:

BaseC * base = &test;

Может быть, это помогает кому-то еще. Спасибо всем.

Другие вопросы по тегам