Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.08.2006, 10:59
|
|
Временная регистрация
Регистрация: 17.05.2006
Сообщений: 72
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Работа с памятью программ ATmega128(256)
В форуме недавно поднимался общий вопрос о различиях ATmega16 и 128. А у меня возник вопрос конкретный: как обращаться к адресам flash-памяти, большим, чем 64 кБайт в меге128 (или, тем более, меге256)?
Прочитав даташит узрел некий регистр RAMPZ, младший разряд которого овечает за выбор младших или старших 64 кБайт памяти программ. Но опять же, если верить даташиту, этот регистр используется только с командой ELPM (Extended Load Program Memory - расширенная LPM, считывание программной памяти) при "самопрограммировании" памяти программ.
А как, интересно, производится адресация в командах условных и безусловных переходов, если программный счётчик 16-разрядный?
Куда осуществляется возврат из прерывания или при выходе из функции, если стек тоже 16-разрядный?
Или, может, я не всё прочитал или не всё правильно понял?
Хелп, плиз!
|
|
|
|
10.08.2006, 12:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
используйте CodeVisionAVR и вам не придется заморачиваться "по пустякам".
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
10.08.2006, 13:01
|
|
Временная регистрация
Регистрация: 17.05.2006
Сообщений: 72
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Как говорится, мелочь, а приятно...
Просто, когда такой "пустяк" не имеет, пока, объяснения, он уже перестаёт быть "пустяком". Ладно, хрен с ней, с мегой128. А вот этот самый CodeVision как будет работать с мегой 256? Как организовать правильный возврат из прерывания, т.е. на ту же страницу памяти, из которой это прерывание было вызвано, если обработчик находится в другой странице? Там РС, как я понял, 17-разрядный, а стек? Тоже 17-разрядный? Это в ОЗУ, организованном побайтно?
Мне кажется, что рано или поздно с такими "пустяками" всё-таки придётся разбираться.
|
|
|
|
10.08.2006, 15:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
скомпильте код в CVAVR и посмотрите ASM листинг если интересно.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
10.08.2006, 15:39
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Что делаешь такое могучее если не секрет, Куда столько памяти?
|
|
|
|
10.08.2006, 16:02
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
А вообще, кто сколько по максимуму забивал память, и что это было?
|
|
|
|
10.08.2006, 16:42
|
|
Временная регистрация
Регистрация: 17.05.2006
Сообщений: 72
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Вопрос пока чисто теоретический. Но, всё равно, интересно.
Самое большое (по объёму), что делал на меге128 - светодиодное панно для вывода некоего разноцветного видеоряда, наподобие джекпотовских букв "D", если кто видел. Там память в основном использовалась под сами картинки, т.е. под данные.
Ещё был проект - бегущая строка, там код занимал килобайт 60-70.
Пока ждал ответа, повнимательней почитал даташит. Понял одну важную вещь: программный счётчик PC считает не байты, а команды, которые двубайтовые. Т.е. максимум (для меги 12 64К слов, т.е. те самые 128 Кбайт. Т.е. с адресацией всё понятно. А байтовые данные из FLASH считываются именно командой ELPM.
Что касается компиляторов, в частности CodeVision, то был в инете вопрос одного человека, который спрашивал о правильности компиляции программ для меги 256. Видимо, есть проблемы. Боюсь, что и в CV они есть.
Кто-нибудь проверял?
Avr123-nm-ru, а вы работали с мегой 256 на CV? Если да, то всё ли работало правильно?
__________________
"Имею честь иметь Вашу честь в своём доме..."
|
|
|
|
10.08.2006, 20:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от paha1956
|
Avr123-nm-ru, а вы работали с мегой 256 на CV?
|
нет, только 128. Но не думаю что автор компилятора не знает о том как работать с 256 мегой.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
11.08.2006, 10:02
|
|
Временная регистрация
Регистрация: 17.05.2006
Сообщений: 72
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Вобщем, понятно. Никто не знает...
__________________
"Имею честь иметь Вашу честь в своём доме..."
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:57.
|
|