|
|
  |
Программа выдаёт Stack Overflow |
|
|
|
May 5 2008, 08:23
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(Oleg_IT @ May 5 2008, 07:14)  Маленький проект работает на ATMega16, большой, тот который не работает, на ATMega128. Может есть особенность для этого МК? Да - фюз M103C Анатолий.
|
|
|
|
|
May 5 2008, 08:57
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Oleg_IT @ May 4 2008, 20:54)  Есть два проекта преобразованного из IAR в WinAVR-20070525. Объём исполняемых файлов отличается раз в пять. "раз в пять" возможно только в том случае, когда у WinAVR оптимизация отключена вообще. При этом и стека хватать практически наверняка не будет. Цитата(SasaVitebsk @ May 4 2008, 23:16)  Как поступает WinAVR я не знаю. Если он использует только один стек, то этот стек может быть значительно большим по размеру. Раз симулятор указывает про переполнение стека, то его надо увеличить. Причём лучше - значительно. Стек один и он сразу устанавливается максимально возможного размера. Цитата(ILYAUL @ May 5 2008, 06:38)  Может возможно задать вершину стека так , правда на asm RESET1: ldi temp,high(RAMEND) ; out SPH,temp ldi temp,low(RAMEND) out SPL,temp Именно эти команды и стоят в "запускалке", единственный стек вполне естественно инициализируется верхушкой памяти и получается максимально возможного размера. Включите уровень оптимизации -Os.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
May 5 2008, 09:35
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(ReAl @ May 5 2008, 12:57)  "раз в пять" возможно только в том случае, когда у WinAVR оптимизация отключена вообще. При этом и стека хватать практически наверняка не будет. Раз в пять отличается один (маленький) проект от другого (большого). Между IAR-ом и WinAVR размер кода не сравнивал, так как в IAR-е работал с бинарником, а WinAVR работаю с HEX файлами. С фюзом M103C попробую. В WinAVR (совместно с AStudio) настроек проекта практически нет или я их не вижу.
|
|
|
|
|
May 5 2008, 12:48
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(Oleg_IT @ May 5 2008, 12:35)  Раз в пять отличается один (маленький) проект от другого (большого). Ну, первое предложение не совсем "казнить нельзя помиловать", но я всё равно понял неправильно  Цитата(Oleg_IT @ May 5 2008, 12:35)  С фюзом M103C попробую. В WinAVR (совместно с AStudio) настроек проекта практически нет или я их не вижу. Ну... Если в IAR переменные вместе со стеками заказанного размера влезли в 4000 (а не 4096) байт ОЗУ, то с прошитым M103C у IAR работать будет, у gcc - нет, так как для меги128 он проинициализирует стек исходя из 4096 байт ОЗУ. Но это вопрос к кристаллу, а не к симулятору, в симуляторе должно работать в любом случае. У AVRstudio настроек немного, но, вообще говоря, достаточно - в project/configuration options. Основное выбирается галками, тонкие настройки - вручную вписывать ключи gcc на закладке custom options, но это придётся таки описание на gcc почитать
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|