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

 
 
> 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
Ответов
Сергей Борщ
сообщение Sep 11 2015, 05:51
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



А ИАР при выводе расхода стека в листинг случайно не учитывает и расход стека вложенных функций? В этом случае стоит посмотреть расход стека функцией main() и добавить к нему самый большой расход стека из всех обработчиков прерываний. И все - "задача решена, землекопов - полтора". При условии, что в программе нет вызова функций по указателю - в этом случае компилятор навряд ли сможет учесть в вызывающей функции их расход стека.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Sep 11 2015, 06:07
Сообщение #3


Местный
***

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



Цитата(Сергей Борщ @ Sep 11 2015, 12:51) *
...

Здравствуйте!
Код
__C_task main (void)


CODE

###############################################################################
# #
# IAR C/C++ Compiler V6.12.1.50500 for Atmel AVR 10/Sep/2015 13:15:22 #
# Copyright 1996-2012 IAR Systems AB. #
# #
# Source file = F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\main.c #
# Command line = F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\main.c #
# --cpu=tiny13 -mt -o F:\Work\Projects\ATMEL\IAR\C\TIMER_E #
# ASY\Debug\Obj\ -lC F:\Work\Projects\ATMEL\IAR\C\TIMER_EA #
# SY\Debug\List\ -lA F:\Work\Projects\ATMEL\IAR\C\TIMER_EA #
# SY\Debug\List\ --initializers_in_flash --debug #
# -DENABLE_BIT_DEFINITIONS -e --eeprom_size 64 --clib -Ohz #
# List file = F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\List\main. #
# lst #
# Object file = F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\Debug\Obj\main.r #
# 90 #
# #
# #
###############################################################################

F:\Work\Projects\ATMEL\IAR\C\TIMER_EASY\main.c
1 //========================================================================
2 #include "main_def_func.h" // Заголовочные файлы, глобальные определения, общие функции.
3 //========================================================================
4
5 //========================================================================

\ In segment CODE, align 2, keep-with-next
6 __C_task main (void)
\ main:
7 {
8 wdt_enable (WDTO_15_MS);
\ 00000000 E000 LDI R16, 0
\ 00000002 .... RCALL wdt_enable
9
10 init_sys_timer ();
\ 00000004 .... RCALL init_sys_timer
11
12 __enable_interrupt ();
\ 00000006 9478 SEI
13
14 Init_Events ();
\ 00000008 .... RCALL Init_Events
15
16 while (1)
17 {
18 __watchdog_reset ();
\ ??main_0:
\ 0000000A 95A8 WDR
19
20 service_timers ();
\ 0000000C .... RCALL service_timers
21
22 kbd_drv (); // Обработка кнопки.
\ 0000000E .... RCALL kbd_drv
23
24 proc_timer (); // Таймер.
\ 00000010 .... RCALL proc_timer
25
26 Process_Events ();
\ 00000012 .... RCALL Process_Events
\ 00000014 CFFA RJMP ??main_0
27 }
28 }
29 //========================================================================

Maximum stack usage in bytes:

CSTACK RSTACK Function
------ ------ --------
0 2 main
0 2 -> Init_Events
0 2 -> Process_Events
0 2 -> init_sys_timer
0 2 -> kbd_drv
0 2 -> proc_timer
0 2 -> service_timers
0 2 -> wdt_enable


Segment part sizes:

Bytes Function/Label
----- --------------
22 main


22 bytes in segment CODE

22 bytes of CODE memory

Errors: none
Warnings: none

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 11 2015, 07:01
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(demiurg1978 @ Sep 11 2015, 09:07) *
Здравствуйте!
Код
__C_task main (void)
Это что? Типа "Дал г-на, дай и ложку"? Вы предлагаете мне за вас почитать ваш листниг, а потом посоветовать в какую-нибудь из функций добавить расходующий стек код и сравнить? Или выводы тоже нам озвучивать придется?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение Sep 11 2015, 07:04
Сообщение #5


Местный
***

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



Цитата(Сергей Борщ @ Sep 11 2015, 14:01) *
...

main не вызывается. Соответственно, стек main не использует.

Сообщение отредактировал demiurg1978 - Sep 11 2015, 07:04
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- demiurg1978   IAR. Помогите разобраться с настройками   Sep 9 2015, 13:04
- - zltigo   QUOTE (demiurg1978 @ Sep 9 2015, 16:04) К...   Sep 9 2015, 13:17
|- - demiurg1978   Цитата(zltigo @ Sep 9 2015, 20:17) ... Не...   Sep 9 2015, 13:21
|- - zltigo   QUOTE (demiurg1978 @ Sep 9 2015, 16:21) в...   Sep 9 2015, 13:29
|- - demiurg1978   Цитата(zltigo @ Sep 9 2015, 20:29) ... То...   Sep 9 2015, 13:31
|- - zltigo   QUOTE (demiurg1978 @ Sep 9 2015, 16:31) Т...   Sep 9 2015, 13:45
|- - demiurg_spb   Цитата(demiurg1978 @ Sep 9 2015, 16:31) Т...   Sep 9 2015, 13:59
|- - demiurg1978   Цитата(demiurg_spb @ Sep 9 2015, 20:59) ....   Sep 9 2015, 14:09
|- - 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
|- - Непомнящий Евгений   Цитата(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
|- - Сергей Борщ   Цитата(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 Текстовая версия Сейчас: 22nd July 2025 - 04:31
Рейтинг@Mail.ru


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