|
IAR. Помогите разобраться с настройками |
|
|
|
Sep 9 2015, 13:04
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Потребовалось написать проект для ATTINY c 1 kB flash. IAR. При компиляции выдал ошибку и ругнулся на CSTACK и RSTACK. На жирных МК меня эти настройки не волновали. Поставил с TINY на SMALL и все. Сейчас наступил момент подробно разобраться с этими настройками. Поясните пожалуйста так, чтобы я понял как правильно лезть в эти настройки. При таких настройках как на картинке ошибка исчезла. Как смутно понял, так и поставил.
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Sep 9 2015, 13:17
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (demiurg1978 @ Sep 9 2015, 16:04)  Как смутно понял, так и поставил. Пока Вы сами не поймете, как работает микроконтрорллер со стеками, что это за стеки и какая глубина их ВАМ В ВАШЕЙ ПРОГРАММЕ требуется ДЛЯ РАБОТЫ, а не зачем-то какому-то там "IAR" которому нужно заткунуть предупреждения, придется учить матчасть.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 9 2015, 13:21
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Цитата(zltigo @ Sep 9 2015, 20:17)  ... Не спешите желчь изливаться. Я знаю что это за стеки. Скажем, про глубину вложений я понял. RSTACK. Здесь я полностью ориентируюсь, какая глубина вложений у меня в программе. А вот CSTACK мне непонятно, что именно означает это число, и из каких соображений исходить, чтобы изменять это число.
Сообщение отредактировал demiurg1978 - Sep 9 2015, 13:22
|
|
|
|
|
Sep 9 2015, 13:31
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Цитата(zltigo @ Sep 9 2015, 20:29)  ... То есть я должен исходить из максимального объема передаваемых параметров функций?
Сообщение отредактировал demiurg1978 - Sep 9 2015, 13:45
|
|
|
|
|
Sep 9 2015, 13:59
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(demiurg1978 @ Sep 9 2015, 16:31)  То есть я должен исходить из максимального объема передаваемых параметров функций? Скорее нет, чем да. Важно тело функции - как много ему требуется на стеке для локальных переменных, не уместившихся в регистрах. Прочитайте про стековый фрейм, применительно к конкретной архитектуре и конкретному компилятору. Также важна и алгоритмическая часть: рекурсии например...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Sep 9 2015, 14:09
|
Местный
  
Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709

|
Цитата(demiurg_spb @ Sep 9 2015, 20:59)  ... Рекурсии пока отложим в сторону. Есть у меня функция. Как я могу понять, что у меня все будет нормально работать, хватит стека данных?
Сообщение отредактировал demiurg1978 - Sep 9 2015, 14:10
|
|
|
|
|
Sep 10 2015, 05:24
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(demiurg1978 @ Sep 9 2015, 17:09)  Рекурсии пока отложим в сторону. Есть у меня функция. Как я могу понять, что у меня все будет нормально работать, хватит стека данных? поковыряйте настройки мап-файла. ИАР умеет считать расход обоих стеков для функций. Правда, он не знает, какие прерывания могут происходить во время работы той или иной функции, так что вдумчивое изучение не помешает. Также неплохо, как уже посоветовал zltigo, забить область cstack/rstack 0xff при старте программы (только аккуратно, не полностью, чтобы не обрушить текущее содержимое стека  ), а во время исполнения смотреть, сколько места осталось Цитата(demiurg1978 @ Sep 9 2015, 22:44)  Покажите здесь криминал. Исходные данные: ATTINY13. 64 байта ОЗУ. Настройки CSTACK 0x20. RSTACK 8. Найдите криминал в листинге: Вы ж примерно представляете, куда девается RAM? Глобальные переменные, статические переменные, CSTACK, RSTACK, куча (надеюсь, отключена?) Судя по листингу, 25 байт - глобальные переменные. + 32 CSTACK + 8 RSTACK = 65. Сколько нужно CSTACK / RSTACK - компилятор может сказать очень примерно, ибо не знает, какие прерывания в каких местах могут сработать. В map файл можно добавить анализ стека, покопайте в настройках
|
|
|
|
Сообщений в этой теме
demiurg1978 IAR. Помогите разобраться с настройками Sep 9 2015, 13:04    zltigo QUOTE (demiurg1978 @ Sep 9 2015, 16:31) Т... Sep 9 2015, 13:45      zltigo QUOTE (demiurg1978 @ Sep 9 2015, 17:09) Р... Sep 9 2015, 14:11       demiurg1978 Цитата(zltigo @ Sep 9 2015, 21:11) ...
Я ... Sep 9 2015, 14:17        zltigo QUOTE (demiurg1978 @ Sep 9 2015, 17:17) К... Sep 9 2015, 14:22         demiurg1978 Цитата(zltigo @ Sep 9 2015, 21:22) ...
Я ... Sep 9 2015, 14:25          zltigo QUOTE (demiurg1978 @ Sep 9 2015, 17:25) Я... Sep 9 2015, 14:40           demiurg1978 Цитата(zltigo @ Sep 9 2015, 20:29) Скольк... Sep 9 2015, 14:46            zltigo QUOTE (demiurg1978 @ Sep 9 2015, 17:46) И... Sep 9 2015, 14:53             demiurg1978 Что-то диалог в тупик зашел. На ассемблере я могу ... Sep 9 2015, 14:59              zltigo QUOTE (demiurg1978 @ Sep 9 2015, 17:59) Н... Sep 9 2015, 15:08              Dog Pawlowa Цитата(demiurg1978 @ Sep 9 2015, 17:59) Н... Sep 9 2015, 16:25               demiurg1978 Цитата(Dog Pawlowa @ Sep 9 2015, 23:25) А... Sep 9 2015, 16:27                Dog Pawlowa Цитата(demiurg1978 @ Sep 9 2015, 19:27) Н... Sep 9 2015, 16:29               zltigo QUOTE (Dog Pawlowa @ Sep 9 2015, 19:25) А... Sep 9 2015, 16:43               demiurg1978 Цитата(Dog Pawlowa @ Sep 9 2015, 23:25) Б... Sep 9 2015, 16:43                zltigo QUOTE (demiurg1978 @ Sep 9 2015, 19:43) О... Sep 9 2015, 16:49                 demiurg1978 Цитата(zltigo @ Sep 9 2015, 23:49) Вообще... Sep 9 2015, 16:55                  demiurg_spb Цитата(demiurg1978 @ Sep 9 2015, 19:55) В... Sep 9 2015, 17:43                  zltigo QUOTE (demiurg1978 @ Sep 9 2015, 19:55) В... Sep 9 2015, 19:06                   demiurg1978 Цитата(zltigo @ Sep 10 2015, 02:06) Так-ч... Sep 9 2015, 19:44                    zltigo QUOTE (demiurg1978 @ Sep 9 2015, 22:44) Н... Sep 9 2015, 20:23                     demiurg1978 Цитата(zltigo @ Sep 10 2015, 03:23) ...
Б... Sep 9 2015, 20:37                      zltigo QUOTE (demiurg1978 @ Sep 9 2015, 23:37) Б... Sep 9 2015, 21:18                      Dog Pawlowa Цитата(demiurg1978 @ Sep 9 2015, 23:37) н... Sep 9 2015, 23:51                       demiurg1978 Цитата(Непомнящий Евгений @ Sep 10 2015, 12... Sep 10 2015, 05:57 SSerge На всякий случай уточню: листинг - это файл с расш... Sep 9 2015, 15:18 dxp QUOTE (demiurg1978 @ Sep 9 2015, 20:46) И... Sep 11 2015, 03:59 Сергей Борщ А ИАР при выводе расхода стека в листинг случайно ... Sep 11 2015, 05:51 demiurg1978 Цитата(Сергей Борщ @ Sep 11 2015, 12:51) ... Sep 11 2015, 06:07  Сергей Борщ Цитата(demiurg1978 @ Sep 11 2015, 09:07) ... Sep 11 2015, 07:01   demiurg1978 Цитата(Сергей Борщ @ Sep 11 2015, 14:01) ... Sep 11 2015, 07:04    Сергей Борщ Цитата(demiurg1978 @ Sep 11 2015, 10:04) ... Sep 11 2015, 07:21     demiurg1978 Цитата(Сергей Борщ @ Sep 11 2015, 14:21) ... Sep 11 2015, 08:45 Непомнящий Евгений Цитата(Сергей Борщ @ Sep 11 2015, 08:51) ... Sep 11 2015, 07:01 esaulenka Цитата(Сергей Борщ @ Sep 11 2015, 08:51) ... Sep 11 2015, 07:02
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|