Jump to content

    

Клмпиляция FreeRTOS + Библиотеки на С++

Здравствуйте Уважаемые господа.

 

FreeRTOS написана на C, пишу библиотеки на С++ в рамках проекта для исполнения в ОС Windows.

Реально ли в дальнейшем свои библиотеки с классами на С++ прикрутить к FreeRTOS, точнее реально ли скомпилировать это всё в рамках одного проекта?

 

Пока к FreeRTOS только присматриваюсь, поэтому проводить тесты пока не имею возможности.

C++ компиляторы для Windows/Linux приложений смешенный код компилируют нормально. Но вероятно для FreeRTOS существуют какието строгие требования на сей счёт.

 

Заранее благодарен за ваши комментарии.

Share this post


Link to post
Share on other sites
C++ компиляторы для Windows/Linux приложений смешенный код компилируют нормально. Но вероятно для FreeRTOS существуют какието строгие требования на сей счёт.
Например какие бы Вам пришли в голову?

Если компилится смешанный проект, то принципиально не важно есть в нём ОС или нет. Конечно нужно понимать что под каждую задачу будет выделен свой стек и возможно куча, от использования которой, возможно, лучше отказаться в этом случае. Почитайте доки на ось хоть поверхностно и всё встанет на свои места.

Share this post


Link to post
Share on other sites
и возможно куча, от использования которой, возможно, лучше отказаться в этом случае.

 

Вот тут я не понял. Куча одна на все задачи или объясните что вы имели ввиду.

Share this post


Link to post
Share on other sites

После 5-10 минут исправлений мелких несоответствий в иаре нормально компилируется и в С и С++.

Куча в FreeRTOS может делаться разными способами. Если наиболее рекомендуемым, как большинство примеров сделано, - то в виде отдельного массива с менеджером памяти. И никак она не будет пересекаться с кучей которую обеспечивает С/С++, можно использовать одновременно и ту и эту, только наверное неудобно будет.

Share this post


Link to post
Share on other sites

После 5-10 минут исправлений мелких несоответствий в иаре нормально компилируется и в С и С++.

Куча в FreeRTOS может делаться разными способами. Если наиболее рекомендуемым, как большинство примеров сделано, - то в виде отдельного массива с менеджером памяти. И никак она не будет пересекаться с кучей которую обеспечивает С/С++, можно использовать одновременно и ту и эту, только наверное неудобно будет.

Share this post


Link to post
Share on other sites

Судя по всему, вы сделали две одинаковые кучи.

Share this post


Link to post
Share on other sites
Судя по всему, вы сделали две одинаковые кучи.

в смысле?

 

Я использую менеджер памяти heap_2 (во FreeRTOS), heap в настройках компилятора задал 0, и пользуюсь только кучей freertos. Я только хотел сказать, что наличие или отсутствие кучи нисколько не влияет на компиляцию.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this