Перейти к содержанию
    

само программирование Flash AVR, пример asm кода из AES bootloadera

зачем столько условной компиляции не могу разобраться.

// Executes self-programming command

 

spmSPM:

movw r31:r30, r17:r16

 

rcall spmWait

 

in r20, SREG

cli

 

#ifdef __RAMPZ__

in r21, RAMPZ

out RAMPZ, r18

#endif

 

#ifdef __MEMSPM__

sts SPMREG, r22

#else

out SPMREG, r22

#endif

 

#ifdef __RAMPZ__

espm

#else

spm

#endif

 

dw 0xFFFF

nop

 

#ifdef __RAMP__

out RAMPZ, r21

#endif

 

out SREG, r20

ret

 

1. что такое и зачем __RAMPZ__ - если МК больше 64Кб?

2. что такое и зачем __MEMSPM__

3. зачем размещается слово в памяти «dw 0xFFFF», при отладке в AVR Studio попадая, на эту команду выдает предупреждение – что команда не известна.

Изменено пользователем _Алекс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где вы берете исходники? Ну захожу я на атымел.ком, ввожу в поиске AVR231 или AES bootloader и получаю ссылку на пдф и всякую лажу не по теме... внутри пдф только общие алгоритмы... Чисто по логике удается найти в нете ссылку по ключевым словам AVR231.zip но этоже не серьезно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где вы берете исходники? Ну захожу я ...

Заходить надо, как правило, на Application Notes.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. что такое и зачем __RAMPZ__ - если МК больше 64Кб?

индексный регистр Z только 16 бит - что бы адресовать больше нужен этот регистр.

2. что такое и зачем __MEMSPM__

у разных AVR регистр SPM или доступен через OUT или через STS

3. зачем размещается слово в памяти «dw 0xFFFF», при отладке в AVR Studio попадая, на эту команду выдает предупреждение – что команда не известна.

А это в даташите в секции errata описано.

 

PS про все это лучше почитать в datasheet на разные AVR

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...