|
Как инициировать стек в AtMega 128, Как инициировать стек в AtMega 128 |
|
|
|
Jan 29 2010, 12:05
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Здравствуйте!!! Работаю с Atmega 128. Вопрос такой, подскажите как выделить под стек 2КБайта ОЗУ встроенной в данный микроконтроллер. Как это сделать на языке С? Приведите примерчик плиз Спасибо!!!
|
|
|
|
|
 |
Ответов
(1 - 8)
|
Jan 29 2010, 12:40
|

developer
   
Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032

|
Цитата(Oops @ Jan 29 2010, 15:05)  Как это сделать на языке С? Все зависит от вашего компилятора. В IAR в настройках проекта это делается, можно в линкеровском скрипте также.
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Jan 29 2010, 13:49
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Сначала писал программку в Code Vizion при компиляции выскочила ошибка о том что недостаточно стека и как его увеличить используя меню данной среды. Увеличил стек с 1024К до 2500 (рис 1)- все скомпилилилось и прекрасно работает(рис 2). Сейчас компилирую эти же исходники в IAR там прога компилится но работает неправильно (пропадают глобальные переменные, да и вообще непонятно куда девает и откуда он берет значения некоторых переменных) в общем думаю что тоже надо стек увеличить, пробовал в настройках компилятора IAR увеличивать но получаю ошибки (рис 3), в общем 2К там мне поставить не удалось. Вот я и думаю может можно в коде задать, в Code Vizion все без проблем получилось а в IAR не получается. Может я чтото не так делаю?? Как правильно задать в IAR стек на 2К? Спасибо!!!
Сообщение отредактировал Oops - Jan 29 2010, 13:52
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 30 2010, 05:49
|

developer
   
Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032

|
Цитата(Oops @ Jan 29 2010, 16:49)  Как правильно задать в IAR стек на 2К? Спасибо!!! Так вы похоже "кучу" используете. Вам наоборот сегмент HEAP надо увеличить. Menu->Project->Options Появиться окошко, там смотрим General Options. Здесь есть вкладки Heap Configuration для настройки HEAP. И вкладка System. На вкладке System есть параметр CSTACK - это стек данных и RSTACK - это стек адресов возврата функций(это аппаратный стек, туда автоматически сохраняются адреса возвратов при вызове функции или при возникновении прерывания).
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
Jan 31 2010, 11:18
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Здравствуйте!!! Увеличил Heap и Stack в IAR как ВЫ посоветовали - все заработало. Смотрю свой проект в AVR Studio отладчике и вижу следующее (рис_1). Почему Data Stack и Program Stack - Disable. Почему они не задействовались, как их сделать Enable? Спасибо!!!
Сообщение отредактировал Oops - Jan 31 2010, 11:19
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|