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;
Может быть, это помогает кому-то еще. Спасибо всем.