|
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 9 2015, 14:17
|
Местный
  
Группа: Участник
Сообщений: 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
Как мне здесь понять, где смотреть? Я специально очистил проект и скомпилировал. Листинги модулей есть.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|