Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование памяти программ, ATmega128 
:(
    Опции темы
Denver
Дата 17.5.2006, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.2.2005

Репутация: нет
Всего: нет



Требуется читать/записывать данные в память программ.
Нашел литературу про соответствующие команды LPM и SPM, но не получается их использовать, т.к. необходимо написать программу-загрузчик. Как описывается загрузчик и где он должен находиться?
Может кто подскажет? Могу выложить пример из книги. 
PM MAIL   Вверх
Romikgy
Дата 17.5.2006, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Цитата(Denver @  17.5.2006,  08:46 Найти цитируемый пост)
т.к. необходимо написать программу-загрузчик

зачем? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Denver
Дата 17.5.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.2.2005

Репутация: нет
Всего: нет



короче, вот так не получается 
                 ldi     zh,$FF
                  ldi     zl,$00
        ldi r16,7
        mov r0,r16
        clr r1
        ldi r16,3
        sts SPMCR,r16
        spm
        
        ldi r16,1
        sts SPMCR,r16
        spm

затем читаю от туда же
        ldi     zh,$FF
        ldi     zl,$00
        lpm
        sts     SN+1,r0
        adiw    zl,1
        lpm
        sts     SN,r0
и в SN:SN+1 записывается 65535(FF), а должно быть 00007
В чем ошибка? Хотя так написанно в книге
Может еще что то надо? 
PM MAIL   Вверх
ShadeSt
Дата 19.5.2006, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 9.8.2005
Где: Россия, г. Ставро поль

Репутация: 4
Всего: 7



Если я правильно ошибаюсь, загрузчик должен находится в области выделенной под него.
Область эта выбирается конфигурацией контроллера, и может быть либо "вверху", либо "внизу" памяти, размер соответственно тоже выбирается, а так же конфигурируется адрес с которого начнется исполнение программы либо 0h либо начало блока загрузчика, если он находится "внизу".

По идее писать память программ можно, только из области загрузчика, хотя тут я могу ошибаться. Почитай DataSheet, там должен быть отдельный раздел про это. И посмотри на 
boot.h /avr_boot Bootloader Support Utilities/, если есть WinAvr. 


--------------------
It's nice to be importand, but it's more importand to be nice © Scooter
PM MAIL ICQ Jabber   Вверх
Denver
Дата 22.5.2006, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.2.2005

Репутация: нет
Всего: нет



А по конкретней можно! Как и где, если можно с примером.
Неужели никто не писал в память программ? Ну очень нужно.
 smile  
PM MAIL   Вверх
PILOT
Дата 22.5.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Посмотри тут 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  avr109.zip 23,65 Kb


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
PILOT
Дата 22.5.2006, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



и тут 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  AVR109.pdf 153,58 Kb


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
ShadeSt
Дата 22.5.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 9.8.2005
Где: Россия, г. Ставро поль

Репутация: 4
Всего: 7



Цитата

The Flash memory is organized in two main sections, the Application section and the
Boot Loader section ... The size of the different sections is configured by
the BOOTSZ Fuses...

Цитата

The Application section is the section of the Flash that is used for storing the application
code...The Application section can never store any Boot Loader code since the SPM instruction is disabled when executed from the Application section

Цитата

While the Application section is used for storing the application code, the The Boot
Loader software must be located in the BLS since the SPM instruction can initiate a programming
when executing from the BLS only. The SPM instruction can access the
entire Flash, including the BLS itself.

Цитаты выше взяты из мануала к ATmega8535. Почитай сначала мануал, что бы понять как это все работает.. хотя уже приблизительно должно быть понятно направление в котором надо копать.

SPM инструкции не будут работать если их выполнять из памяти программ. Сконфигурируй контроллер так, что бы твой код, который должен писать в память, был в области загрузчика, тогда все будет нормально.  


--------------------
It's nice to be importand, but it's more importand to be nice © Scooter
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.