В разработке встроенного C, работающей с ОСРВ с несколькими задачами, где каждая задача имеет свой собственный стек, почему в стеке может быть неиспользуемый разрыв между используемыми разделами?
Стеки заполнены известным шаблономпри запуске, чтобы определить использование стека в худшем случае.Когда содержимое стека просматривается во время выполнения с помощью средства просмотра памяти IDE, между обычными данными стека виден разрыв известного шаблона.
Например:
Stack top
-----------------
unused area
-----------
used area 2
-----------
unused area
-----------
used area 1
-----------------
Stack bottom
Почему бынормальное использование стека оставляют пробел вместо непрерывных данных?
Любые предложения приветствуются, спасибо
Обновление
Чтобы ответить на вопросы, один пробел96 байт было замечено в одном стеке, где общий размер стека составляет 0x400 байт.
Спасибо за все ваши комментарии, есть несколько отличных предложений.В этом случае я могу управлять выравниванием из-за размера зазора и единичного вхождения.Вероятно, причина в неинициализированном массиве, так как все остальные ОЗУ изначально заполнены тем же шаблоном, что и стеки.
Моя другая (касающаяся) мысль была поврежденным указателем стека, но это кажется маловероятным, поскольку программное обеспечение работает без проблем.