|
Как определить максимальную реальную глубину CSTACK моей программы?, в отладчике |
|
|
|
Oct 14 2015, 08:35
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 13-03-14
Из: Санкт-Петербург
Пользователь №: 80 903

|
Есть ли какая-нибудь встроенная особенность отладчика IAR, которая автоматически показывает максимальную глубину CSTACK, которая произошла в моей программе за время отладки встроенным отладчиком?
Сейчас приходится вручную приблизительно прикидывать, сколько скушает SCTACK, а хотелось бы поточнее.
Думаю, вопрос подойдет про разные платформы. Конкретно - AVR.
Сообщение отредактировал Разработчики - Oct 14 2015, 08:36
|
|
|
|
|
 |
Ответов
|
Oct 14 2015, 11:21
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 13-03-14
Из: Санкт-Петербург
Пользователь №: 80 903

|
Спасибо. Я посмотрел, он довольно сильно завышает.
А можно как-то из программы определить границы (начало и конец) SCTACK - где расположено?
Сообщение отредактировал Разработчики - Oct 14 2015, 11:22
|
|
|
|
|
Oct 14 2015, 12:53
|
Частый гость
 
Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315

|
Цитата(Разработчики @ Oct 14 2015, 14:21)  А можно как-то из программы определить границы (начало и конец) SCTACK - где расположено? __segment_begin("CSTACK") __segment_end("CSTACK") и нужно не забыть заранее сделать так: #pragma segment = "CSTACK"
|
|
|
|
|
Oct 14 2015, 13:55
|
Участник

Группа: Участник
Сообщений: 15
Регистрация: 13-03-14
Из: Санкт-Петербург
Пользователь №: 80 903

|
Цитата(den_po @ Oct 14 2015, 15:53)  и нужно не забыть заранее сделать так: #pragma segment = "CSTACK" Я имел в виду системный сегмент CSTACK, а не мой. Цитата(jcxz @ Oct 14 2015, 15:49)  Стек в программе не определяют, а задают. Если что. Так же как любой другой массив. Для массива можно из программы узнать, куда его запихал компилятор. А CSTACK?
|
|
|
|
|
Oct 15 2015, 05:23
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Разработчики @ Oct 14 2015, 19:55)  Для массива можно из программы узнать, куда его запихал компилятор. А CSTACK? Я не знаю, что в Вашей программе означает символьное имя CSTACK. Это только Вы можете знать. В моих проектах это имя не используется. У меня есть массив static __root __no_init OS_STK stkTaskMain[NNN + STK_SIZE_ISR_NFP] @ ".bssStkMain";задающий стек используемый стартапом и функцией main() (и, впоследствии, после старта ОС, другой задачей), есть сегмент .bssStkMain, в который линкуется этот массив и указатель на конец которого записывается в вектор сброса. Есть множество других стеков задач ОС, каждый задан массивом типа __no_init static OS_STK stkXXX[NNN + STK_SIZE_ISR_NFP] @ ".bssStk";И место под любой стек задаётся статическим массивом в исходниках либо в файле конфигурации компоновщика (*.icf в IAR).
|
|
|
|
|
Oct 15 2015, 06:38
|
Частый гость
 
Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315

|
Цитата(jcxz @ Oct 15 2015, 08:23)  Я не знаю, что в Вашей программе означает символьное имя CSTACK. Это только Вы можете знать. В моих проектах это имя не используется. То есть вы НИКОГДА не использовали иаровский стартап и его же конфиги линкера по умолчанию?
|
|
|
|
Сообщений в этой теме
Разработчики Как определить максимальную реальную глубину CSTACK моей программы? Oct 14 2015, 08:35 Непомнящий Евгений Заполняете область стека неким шаблоном (0xff, 0xD... Oct 14 2015, 08:44 Разработчики Цитата(Непомнящий Евгений @ Oct 14 2015, 11... Oct 14 2015, 08:48    den_po Цитата(Разработчики @ Oct 14 2015, 16:55)... Oct 14 2015, 14:01     Разработчики Цитата(den_po @ Oct 14 2015, 17:01) Они о... Oct 14 2015, 14:11      jcxz Цитата(den_po @ Oct 15 2015, 12:38) То ес... Oct 15 2015, 06:50       Target А подскажите, как получить трехбайтовую величину? ... Nov 25 2015, 11:33        SSerge Цитата(Target @ Nov 25 2015, 18:33) А под... Nov 25 2015, 12:51         Target Цитата(SSerge @ Nov 25 2015, 15:51) #prag... Nov 26 2015, 08:20          Ga_ry Цитата(Target @ Nov 26 2015, 10:20) Обычн... Nov 26 2015, 10:32 jcxz Цитата(Сергей Борщ @ Oct 14 2015, 15:43) ... Oct 14 2015, 12:49 Ga_ry Что то читал, читал эту ветку и так и не понял как... Nov 25 2015, 19:15 kolobok0 Цитата(Ga_ry @ Nov 25 2015, 22:15) ...Как... Nov 25 2015, 20:49  k155la3 Цитата(kolobok0 @ Nov 26 2015, 00:49) дел... Nov 29 2015, 09:38 Ga_ry Понятно.
Вот только логи мне писать некуда, 8к поч... Nov 25 2015, 21:09 kolobok0 Цитата(Ga_ry @ Nov 26 2015, 00:09) ...изн... Nov 26 2015, 19:37 Ga_ry kolobok0, а зачем надо умножать на два? Nov 26 2015, 21:21 kolobok0 Цитата(Ga_ry @ Nov 27 2015, 00:21) kolobo... Nov 26 2015, 23:40 x893 а разве DEADBEEF не помогает - или религия запреща... Nov 26 2015, 22:04 Ga_ry Цитата(x893 @ Nov 27 2015, 00:04) а разве... Nov 27 2015, 06:23
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|