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

 
 
 
Reply to this topicStart new topic
> Грабли с C IAR AVR, При компановке сообщает, что мал стек
sergeyip
сообщение Sep 5 2008, 11:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



Здравствуйте. Решил я тут написать проверочную программу для индикатора GT24064
на C IAR AVT. Из дата шита перевел ее в С, оттранслировал. И при компановке получил
такое сообщение.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,
Error[e16]: Segment RSTACK (size: 0x10 align: 0) is too
long for segment definition. At least 0xc more bytes
needed. The problem occurred while processing the
segment placement command
"-Z(DATA)RSTACK+_..X_RSTACK_SIZE=60-FF", where
at the moment of placement the available memory
ranges were "DATA:fc-ff"
Reserved ranges relevant to this placement:
DATA:60-b8 TINY_I
DATA:b9-bb TINY_Z
DATA:bc-fb CSTACK
DATA:fc-ff RSTACK
Total number of errors: 1
Total number of warnings: 0
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Может кто знает как с этим бороться. Как увеличить область стека принудительно.
Модель у меня в опциях стоит TINY и других возможных моделей там нет.
Что-то в последнее время форум тормозит так, что просто невозможно дождаться каких либо действий от него.

Сообщение отредактировал sergeyip - Sep 5 2008, 11:08
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 5 2008, 11:08
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Что за камень то?

На самом деле просто все заказанные области данных не лезут в озу (а не именно стек, просто на стеке линкер понял, что не помещается).

Вариантов борьбы несколько:

1. Уменьшить размеры стеков (в опциях проекта)
2. Уменьшить количество и размеры глобальных переменных (чтобы уменьшились сегменты TINY_I и TINY_Z)


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
SergeyBorshch
сообщение Sep 5 2008, 11:15
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 100
Регистрация: 28-09-05
Из: Чернигов, Украина
Пользователь №: 9 053



Или же поставить контроллер с большим ОЗУ smile.gif .
Go to the top of the page
 
+Quote Post
sergeyip
сообщение Sep 5 2008, 11:24
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



Цитата(Rst7 @ Sep 5 2008, 15:08) *
Что за камень то?

Камень Atmega8. Там задача то на 2-х листиках, пустяковая, а транлятор сдох.
На ассемблере я бы точно влез. Но решил выпендриться smile.gif
Спасибо за ответ, что то подобное я и предполагал.
Способ решения я понял. Приступаю к вырезанию всего лишнего, что только возможно.
Изменение кристалла или добовление ОЗУ дополнительного, это большой гимор, это надо опять в железе капаться - не интересное решение.
Есть еще решение - все константы индикаторные, а их много просто перенести во флэш данных.

Сообщение отредактировал sergeyip - Sep 5 2008, 11:37
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 5 2008, 11:30
Сообщение #5


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Нет, секундочку! У меги8 - килобайт озу. Должна быть там модель памяти small. А камень у Вас в настройках правильный выбран?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 5 2008, 11:30
Сообщение #6


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



А кристалл в настройках правильно выбран?
А то может какой-нибудь Generic стоит...

(упс, телепатия однако...)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 5 2008, 11:32
Сообщение #7


Гуру
******

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



Цитата(sergeyip @ Sep 5 2008, 14:24) *
Камень Atmega8.
Что-то странное вы говорите. Позволяет он для меги8 ставить модель памяти small. А так вы дали компилятору 0x100-0x60 = 160 байт памяти. На асме в 160 байт памяти уложились бы?


--------------------
На любой вопрос даю любой ответ
"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
sergeyip
сообщение Sep 5 2008, 12:02
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



Цитата(Сергей Борщ @ Sep 5 2008, 15:32) *
Что-то странное вы говорите. Позволяет он для меги8 ставить модель памяти small.

Выкладываю фото элемента настройки модели. Файл мой->Борщю. smile.gif Там ясно видно, что при открытии
модели - появляется только шильдик Tiny.
Об среде:

IAR C/C++ Compiler for AVR
4.30A/W32 [Evaluation] (4.30.1.3)
C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\bin\iccavr.exe
10.02.2008 15:03:02, 9654272 bytes

C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\bin\postlink.exe
14.11.2005 11:00:12, 44544 bytes

C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\drivers\jtagIceMkII\wdreg.exe
22.06.2005 11:43:30, 131157 bytes


IAR Embedded Workbench IDE
4.8 (4.8.0.0)
C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\common\bin\IarIdePm.exe
21.05.2007 20:14:44, 315392 bytes
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
TookeR
сообщение Sep 5 2008, 12:06
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 32
Регистрация: 6-06-08
Из: Украина, Одесса
Пользователь №: 38 096



Все просто у вас не выбран кристал ....
в строке Processor configuration выбирите --cpu=m8 , ATmega8
там и будет уже модель памяти small и tiny

Сообщение отредактировал TookeR - Sep 5 2008, 12:08


--------------------
Lasciate ogni speranza voi ch 'entrate. © Dante Alighieri
Оставь надежду всяк сюда входящий. © Данте Алигьери

TookeR aka Jasfin
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 5 2008, 12:13
Сообщение #10


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Прикрепленное изображение

Вот как надо

А скриншоты надо грабить с ALT-ом, тогда только текущее окно захватывается.
И сохранять в .png, красивее и легковеснее


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
sergeyip
сообщение Sep 5 2008, 12:23
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 251
Регистрация: 15-12-05
Из: Москва
Пользователь №: 12 247



Цитата(MrYuran @ Sep 5 2008, 16:13) *
Вот как надо
Ну мужики - Вы гиганты. Большое спасибо. Сразу все прошло. beer.gif

Сообщение отредактировал sergeyip - Sep 5 2008, 12:25
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 5 2008, 13:09
Сообщение #12


Гуру
******

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



Цитата(sergeyip @ Sep 5 2008, 15:23) *
Большое спасибо. Сразу все прошло. beer.gif
Ну вот. я же говорил
Цитата
Позволяет он для меги8


--------------------
На любой вопрос даю любой ответ
"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

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:16
Рейтинг@Mail.ru


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