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

 
 
> IAR. Помогите разобраться с настройками
demiurg1978
сообщение Sep 9 2015, 13:04
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Потребовалось написать проект для ATTINY c 1 kB flash. IAR. При компиляции выдал ошибку и ругнулся на CSTACK и RSTACK. На жирных МК меня эти настройки не волновали. Поставил с TINY на SMALL и все. Сейчас наступил момент подробно разобраться с этими настройками. Поясните пожалуйста так, чтобы я понял как правильно лезть в эти настройки.
При таких настройках как на картинке ошибка исчезла. Как смутно понял, так и поставил.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Sep 9 2015, 13:17
Сообщение #2


Гуру
******

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



QUOTE (demiurg1978 @ Sep 9 2015, 16:04) *
Как смутно понял, так и поставил.

Пока Вы сами не поймете, как работает микроконтрорллер со стеками, что это за стеки и какая глубина их ВАМ В ВАШЕЙ ПРОГРАММЕ требуется ДЛЯ РАБОТЫ, а не зачем-то какому-то там "IAR" которому нужно заткунуть предупреждения, придется учить матчасть.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Sep 9 2015, 13:21
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(zltigo @ Sep 9 2015, 20:17) *
...

Не спешите желчь изливаться. Я знаю что это за стеки. Скажем, про глубину вложений я понял. RSTACK. Здесь я полностью ориентируюсь, какая глубина вложений у меня в программе. А вот CSTACK мне непонятно, что именно означает это число, и из каких соображений исходить, чтобы изменять это число.

Сообщение отредактировал demiurg1978 - Sep 9 2015, 13:22
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 9 2015, 13:29
Сообщение #4


Гуру
******

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



QUOTE (demiurg1978 @ Sep 9 2015, 16:21) *
вот CSTACK мне непонятно

Ну так изучите так-же, как и RSTACK. Явно ведь в том-же букваре, где и про Return STACK прочитали есть и про CSTACK в принципе это "просто" стек, как "у всех" для данных. Сколько Вы данных в стеке храните и через стек передаете, это только Вы знаете.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Sep 9 2015, 13:31
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(zltigo @ Sep 9 2015, 20:29) *
...

То есть я должен исходить из максимального объема передаваемых параметров функций?

Сообщение отредактировал demiurg1978 - Sep 9 2015, 13:45
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Sep 9 2015, 13:59
Сообщение #6


неотягощённый злом
******

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



Цитата(demiurg1978 @ Sep 9 2015, 16:31) *
То есть я должен исходить из максимального объема передаваемых параметров функций?

Скорее нет, чем да.
Важно тело функции - как много ему требуется на стеке для локальных переменных, не уместившихся в регистрах.
Прочитайте про стековый фрейм, применительно к конкретной архитектуре и конкретному компилятору.
Также важна и алгоритмическая часть: рекурсии например...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Sep 9 2015, 14:09
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(demiurg_spb @ Sep 9 2015, 20:59) *
...

Рекурсии пока отложим в сторону. Есть у меня функция. Как я могу понять, что у меня все будет нормально работать, хватит стека данных?

Сообщение отредактировал demiurg1978 - Sep 9 2015, 14:10
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Sep 10 2015, 05:24
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(demiurg1978 @ Sep 9 2015, 17:09) *
Рекурсии пока отложим в сторону. Есть у меня функция. Как я могу понять, что у меня все будет нормально работать, хватит стека данных?


поковыряйте настройки мап-файла. ИАР умеет считать расход обоих стеков для функций. Правда, он не знает, какие прерывания могут происходить во время работы той или иной функции, так что вдумчивое изучение не помешает.

Также неплохо, как уже посоветовал zltigo, забить область cstack/rstack 0xff при старте программы (только аккуратно, не полностью, чтобы не обрушить текущее содержимое стека sm.gif ), а во время исполнения смотреть, сколько места осталось

Цитата(demiurg1978 @ Sep 9 2015, 22:44) *
Покажите здесь криминал. Исходные данные: ATTINY13. 64 байта ОЗУ. Настройки CSTACK 0x20. RSTACK 8. Найдите криминал в листинге:


Вы ж примерно представляете, куда девается RAM? Глобальные переменные, статические переменные, CSTACK, RSTACK, куча (надеюсь, отключена?)

Судя по листингу, 25 байт - глобальные переменные. + 32 CSTACK + 8 RSTACK = 65. Сколько нужно CSTACK / RSTACK - компилятор может сказать очень примерно, ибо не знает, какие прерывания в каких местах могут сработать.

В map файл можно добавить анализ стека, покопайте в настройках

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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