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

 
 
> 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
zltigo
сообщение Sep 9 2015, 14:11
Сообщение #8


Гуру
******

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



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

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


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


Местный
***

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



Цитата(zltigo @ Sep 9 2015, 21:11) *
...

Я вернул настройки, когда выдало ошибку.
CODE

Building configuration: timer_easy - Debug
Updating build tree...
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\events.lst
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\events.r90
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\kbd_drv.lst
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\kbd_drv.r90
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\main.lst
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main.r90
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\main_def_func.lst
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main_def_func.r90
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\proc_timer.lst
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\proc_timer.r90
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\sys_timer.lst
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\sys_timer.r90
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\events.pbi
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\kbd_drv.pbi
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main.pbi
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main_def_func.pbi
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\proc_timer.pbi
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\sys_timer.pbi
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Exe\timer_easy.dbg
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Exe\timer_easy.eep
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Exe\timer_easy.hex
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\timer_easy.pbd

22 file(s) deleted.
Updating build tree...

main_def_func.c
iccavr.exe F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\main_def_func.c --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\
-lCN F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\ --initializers_in_flash --debug -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib
-Ohz

IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR
Copyright 1996-2012 IAR Systems AB.

164 bytes of CODE memory
0 bytes of DATA memory (+ 2 bytes shared)

Errors: none
Warnings: none

events.c
iccavr.exe F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\events.c --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\ -lCN
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\ --initializers_in_flash --debug -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib -Ohz

IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR
Copyright 1996-2012 IAR Systems AB.

82 bytes of CODE memory (+ 4 bytes shared)
2 bytes of DATA memory

Errors: none
Warnings: none

kbd_drv.c
iccavr.exe F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\kbd_drv.c --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\ -lCN
F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\ --initializers_in_flash --debug -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib -Ohz

IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR
Copyright 1996-2012 IAR Systems AB.

156 bytes of CODE memory (+ 4 bytes shared)
2 bytes of DATA memory (+ 1 byte shared)

Errors: none
Warnings: none

main.c
iccavr.exe F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\main.c --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\ -lCN F:\
Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\ --initializers_in_flash --debug -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib -Ohz

IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR
Copyright 1996-2012 IAR Systems AB.

22 bytes of CODE memory

Errors: none
Warnings: none

proc_timer.c
iccavr.exe F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\proc_timer.c --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\
-lCN F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\ --initializers_in_flash --debug -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib
-Ohz

IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR
Copyright 1996-2012 IAR Systems AB.
Warning[Pe550]: variable "_led_blink" was set but never used F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\proc_timer.c 86
Warning[Pe550]: variable "led_1_blink_mode" was set but never used F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\proc_timer.c 87
Warning[Pe177]: variable "tmp_cnt_minutes" was declared but never referenced F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\proc_timer.c 88

106 bytes of CODE memory (+ 4 bytes shared)
4 bytes of DATA memory (+ 2 bytes shared)

Errors: none
Warnings: 3

sys_timer.c
iccavr.exe F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\sys_timer.c --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\
-lCN F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\ --initializers_in_flash --debug -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib
-Ohz

IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR
Copyright 1996-2012 IAR Systems AB.

192 bytes of CODE memory (+ 6 bytes shared)
16 bytes of DATA memory (+ 4 bytes shared)

Errors: none
Warnings: none

Linking
xlink.exe -Ointel-standard,(CODE)=.hex -Ointel-standard,(XDATA)=.eep F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\events.r90 F:\Work\
Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\kbd_drv.r90 F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main.r90 F:\Work\Projects\
ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main_def_func.r90 F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\proc_timer.r90 F:\Work\Projects\
ATMEL\IAR\C\TIMER_EASY\Debug\Obj\sys_timer.r90 -o F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Exe\timer_easy.dbg -Fubrof8 -IC:\
Program Files\IAR Systems\Embedded Workbench 6.0\avr\LIB\ -f C:\Program Files\IAR Systems\Embedded Workbench 6.0\avr\src\template\
cfgtiny13.xcl -D_..X_HEAP_SIZE=10 -D_..X_TINY_HEAP_SIZE=0 -D_..X_NEAR_HEAP_SIZE=0 -D_..X_FAR_HEAP_SIZE=0 -D_..X_HUGE_HEAP_SIZE=0
-D_..X_CSTACK_SIZE=20 -D_..X_RSTACK_SIZE=10 -D_..X_FLASH_CODE_END=_..X_FLASH_END -f C:\Program Files\IAR Systems\Embedded
Workbench 6.0\avr\src\template\cfg0t.xcl -D_..X_FLASH_BASE=_..X_INTVEC_SIZE -H1895 -h(CODE)0-(_..X_INTVEC_SIZE-1)
-D_..X_CSTACK_BASE=_..X_SRAM_BASE -D_..X_CSTACK_END=_..X_SRAM_END -D_..X_RSTACK_BASE=_..X_SRAM_BASE
-D_..X_RSTACK_END=_..X_SRAM_END -s __program_start C:\Program Files\IAR Systems\Embedded Workbench 6.0\avr\LIB\CLIB\cl0t-ec_nomul.r90
-e_large_write=_formatted_write -e_large_read=_formatted_read

IAR Universal Linker V5.3.2.26
Copyright 1987-2012 IAR Systems AB.
Error[e16]: Segment RSTACK (size: 0x10 align: 0) is too long for segment definition. At least 0x8 more bytes needed. The problem occurred while
processing the segment placement command "-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_RSTACK_BASE-_..X_RSTACK_END", where at the
moment of placement the available memory ranges were "DATA:98-9f"
Reserved ranges relevant to this placement:
DATA:60-77 TINY_Z
DATA:78-97 CSTACK
DATA:98-9f RSTACK
Error while running Linker

Total number of errors: 1
Total number of warnings: 3



Как мне здесь понять, где смотреть? Я специально очистил проект и скомпилировал. Листинги модулей есть.
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: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
|- - Непомнящий Евгений   Цитата(demiurg1978 @ Sep 9 2015, 17:09) Р...   Sep 10 2015, 05:24
- - 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 Текстовая версия Сейчас: 19th July 2025 - 12:52
Рейтинг@Mail.ru


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