Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: само программирование Flash AVR, пример asm кода из AES bootloadera
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
_Алекс
зачем столько условной компиляции не могу разобраться.
// 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 попадая, на эту команду выдает предупреждение – что команда не известна.
Waso
А где вы берете исходники? Ну захожу я на атымел.ком, ввожу в поиске AVR231 или AES bootloader и получаю ссылку на пдф и всякую лажу не по теме... внутри пдф только общие алгоритмы... Чисто по логике удается найти в нете ссылку по ключевым словам AVR231.zip но этоже не серьезно!
IgorKossak
Цитата(Waso @ Oct 12 2007, 11:51) *
А где вы берете исходники? Ну захожу я ...

Заходить надо, как правило, на Application Notes.
KRS
Цитата(_Алекс @ Sep 30 2007, 18:50) *
1. что такое и зачем __RAMPZ__ - если МК больше 64Кб?

индексный регистр Z только 16 бит - что бы адресовать больше нужен этот регистр.
Цитата(_Алекс @ Sep 30 2007, 18:50) *
2. что такое и зачем __MEMSPM__

у разных AVR регистр SPM или доступен через OUT или через STS
Цитата(_Алекс @ Sep 30 2007, 18:50) *
3. зачем размещается слово в памяти «dw 0xFFFF», при отладке в AVR Studio попадая, на эту команду выдает предупреждение – что команда не известна.

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

PS про все это лучше почитать в datasheet на разные AVR
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.