реклама на сайте
подробности

 
 
> gcc и статический объект с виртуальными фунциями.
=F8=
сообщение Oct 25 2013, 09:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Пытаюсь разобраться с gcc, столкнулся с такой проблеммой: к примеру имеюстя классы
Код
class thread_c{
public:
    int i;
    virtual void Thread(){};
    static void startThread(void *arg);
    thread_c();
    virtual ~thread_c(){};
};

class test_c : public thread_c
{
public:
    void Thread();
};


Во первых если объявить Thread абстрактным(virtual void startThread(void *arg)=0) то при компиляции появляется куча зависимостей типа _exit, _kill, _write итд. Похоже, что начинают использоваться библиотечные функции с поддержкой исключений (сама программа компилься с флагом no-exceptions). Можно с этим как-то бороться? Добавть пустую функцию, конечно, не большая проблема, но все-таки...

Во-вторых. Я использую FreeRTOS реализаю кучи. Для чего переопределил глобальные new/delete. Пока обекты создаюся динамически то все OK. Но стот обявить объект статически то при инициализации обекта начинает использоваться встроенный менеджер памяти - сужу по тому, что линкер начиеает просить _sbrk насколько понял это функция которая проверяет не встретелись ли еще куча со стеком. Происходит это только в том случае если класс имеет виртуальные функции. Т.е. классы компилятор с классами без виртуальных функций обращяется как с реальными статическими обектами, а статические объекты с виртуальными функциями это лишь видимсть статических объектов?

PS И еще, кто-небуть пробовал использовать semihosting на arm7 и FreeRTOS? Единственное, что получилось это перенести вызов vPortYieldProcessor на undef instruction может есть какой-то более коректный способ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.03756 секунд с 7
ELECTRONIX ©2004-2016