У меня была ошибка, которую я исправил, но мне нужно объяснить ее в отчете.
Я работаю над встроенным устройством под управлением FreeRTOS, которое выполняет собственное управление памятью кучи. FreeRTOS имеет свою собственную версию malloc (), pvPortMalloc (), о которой я не знал, и ее использование устранило проблемы с памятью, которые у меня были.
Мой вопрос касается размера переполнения памяти, которое было вызвано malloc (), размер данных был всего 8 байт, однако размер переполнения был значительным, килобайт, если не больше. Я предполагаю, что первое и единственное использование malloc в этом приложении, установило вторую кучу, конкурирующую с кучей FreeRTOS, размером не менее нескольких килобайт.
Может ли кто-нибудь подтвердить это или дать лучшее объяснение. Указатели на дополнительную информацию или ссылки приветствуются.
malloc()
использовалось до того, как вы перешли наpvPortMalloc()
? Кроме того, не совсем ясно, с какой именно проблемой было ваше приложение, когда оно использовалоmalloc()
(в зависимости от того, какая версия былаmalloc()
. - person Michael Burr   schedule 29.09.2014