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

 
 
> RL-ARM, стек для задач, Пиковые значения размера использования
toweroff
сообщение Apr 10 2012, 14:32
Сообщение #1


Гуру
******

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



Добрый день!

Озадачился тут оптимизацией памяти. Ну во-первых, уменьшил количество одновременно запущенных задач до реального значения
Во-вторых, хочу оптимизировать размер стека

После компиляции я могу посмотреть в отчетах, например, что-то вроде такого:
Код
Maximum Stack Usage = 328 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)
Call chain for Maximum Stack Depth:
monitor ⇒ __0sscanf ⇒ __vfscanf_char ⇒ __vfscanf ⇒ _scanf_int


отлично. Закладываю 400 байт... и вылетаю в Stack Overflow

Запускаю симулятор. Все там прекрасно бегает, разумеется, как только использование printf - так сразу стек "подскакивает"
Но смотреть пошагово - неудобно, да и не всегда отобразится полная картина.
Можно ли как-то промориторить пиковые значения мспользования стека каждой задачей?
В Debug->OS Support я не нашел. Возможно, еще где-то есть такая возможность?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Apr 10 2012, 16:06
Сообщение #2


Гуру
******

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



upd

попробовал. Как там пользуется RL стеком - ума не приложу.
Заполнил все FF
в результате - дырки с FF и другими значениями по всему диапазону стека
черт поймешь, как эта ось его использует...

в общем, я так понимаю, довольно сложно будет точно определить самому. Только если нет штатных инструментов sad.gif так что пока - чистое шаманство
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Apr 10 2012, 16:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(toweroff @ Apr 10 2012, 19:06) *
Заполнил все FF

Может в этом ошибка: заполнять нужно не всё - задача должна запускаться с определёнными значаниями (и наверняка не с FF). То есть заполнить нужно ту часть которую задача ещё не использовала.
SP_tast_init_value-SP_min_value байт начиная от SP_start_value-1.

Цитата(toweroff @ Apr 10 2012, 19:06) *
пока - чистое шаманство

Точно.

Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 06:30
Рейтинг@Mail.ru


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