Arlleex 131 5 сентября, 2022 Опубликовано 5 сентября, 2022 · Жалоба Еще раз: Си-шная куча к куче FreeRTOS (heap_2.c) не имеет отношения. Если Вы этого не понимаете, мне очень жаль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 5 сентября, 2022 Опубликовано 5 сентября, 2022 · Жалоба 44 минуты назад, another_one сказал: куча имеет отношение в выделении памяти Таскам и системным вызовам ртос гдето надо размещатся, а в случае ограниченной памяти лучше это делать через управление от самой ОС В случае ограничения памяти не нужно вообще кучу использовать. Так как статически распределять память - обычно гораздо эффективнее, чем динамически. И насчёт тасков и пр.: во-первых - использовать именно FreeRTOS выбрали вы сами. Почему не выбрали другую ОС, которая не использует дин.память? на FreeRTOS свет клином не сошёлся. И во-вторых: я хоть и не использую FreeRTOS, но насколько знаю - в ней есть возможность распределять память (для стеков задач) статически. Динамическое распределение не обязательно даже во FreeRTOS. Так что, куча - это чисто ваш выбор. А не необходимость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 31 6 сентября, 2022 Опубликовано 6 сентября, 2022 · Жалоба 22 hours ago, jcxz said: При таких скромных ресурсах ОЗУ, полезно обходиться вообще без heap-ов.... Стандартной библиотеке в GCC нужно минимум 256 байт кучи для инициализации. У FreeRTOS своя куча. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 6 сентября, 2022 Опубликовано 6 сентября, 2022 · Жалоба 1 минуту назад, tonyk_av сказал: Стандартной библиотеке в GCC нужно минимум 256 байт кучи для инициализации. Хоть в чём-то IAR круче GCC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 6 сентября, 2022 Опубликовано 6 сентября, 2022 · Жалоба On 9/6/2022 at 5:29 PM, jcxz said: Хоть в чём-то IAR круче GCC. Ну а если так же голословно сказать, что стандартной библиотеке в IAR требуется минимум 512 байт кучи для инициализации? В том сообщении, на которое вы отвечали немного не хватает конкретики ;) Вообще можно и без кучи, как вы выше предложили. И, конечно, это никак не зависит от компилятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 31 6 сентября, 2022 Опубликовано 6 сентября, 2022 · Жалоба 1 hour ago, one_eight_seven said: В том сообщении, на которое вы отвечали немного не хватает конкретики ;) Какая нужна конкретика? Пройдите отладчиком и посмотрите, что где-то в дебрях есть malloc(). 1 hour ago, one_eight_seven said: Вообще можно и без кучи, как вы выше предложили. И, конечно, это никак не зависит от компилятора. Это зависит от используемой библиотеки, а не компилятора. Думаю, что есть реализации стандартной библиотеки без использования кучи. Возможно, на использование кучи влияют функции, которые дальше используются в программе. Мне памяти хватает, поэтому рыть землю из-за 256 байт я не стал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 6 сентября, 2022 Опубликовано 6 сентября, 2022 · Жалоба Использование кучи библиотекой окружения Си можно отключить, ибо она используется только для поддержки semihosting. Хз как в GCC, но в Keil-е, например, так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 31 6 сентября, 2022 Опубликовано 6 сентября, 2022 (изменено) · Жалоба 3 hours ago, Arlleex said: Использование кучи библиотекой окружения Си можно отключить, ибо она используется только для поддержки semihosting Не нужно говорить за все реализации стандартных библиотек для С/С++. Давно не пользуюсь Кайлом, но, вроде, у него свои реализации всех стандартных библиотек были, не GNUсные. И нет у меня никакого semihosting. Изменено 6 сентября, 2022 пользователем tonyk_av Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться