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

 
 
> СМ3 размер стэка, почему 128?
diwil
сообщение Oct 4 2011, 07:32
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107



Здравствуйте.

В мануале написано, что не рекомендуется делать размер стэка меньше чем в примере порта.
В примере порта для кортекса м3 размер стэка == 128 т.е. 512 байт.
Ок. начинаю думать, на что он может расходоваться. Точнее нет, не думать, а смотреть -

- xTaskCreate создает TCB с pxTopOfStack, скажем, 0x12b0.
- далее там из стэка вычитается 64 (т.е. контекст задачи есть 16 регистров) и он становится 0x1270, правда я так и не понял зачем туда сразу кладутся какие-то переменные, ибо положенные на стэк значения дальше, ВРОДЕ, используются .
- далее встаем на точку входа в эту задачу и смотрим значение r13 на входе - 0x12b0 (т.е. чуда не случилось)

Однако, тогда получается, что для работы оси нужно сохранить всего 16 регистров и, если задача типа микро (т.е. сама не использует стэк), то минимальный размер стэка будет равен 16. Плюс надо добавить число сохраняемых регистров в IDLE. И этого должно быть достаточно для всего...

Или я что-то упускаю?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 18:15
Рейтинг@Mail.ru


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