Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ассемблер Atmel v2.1.2 (Studio 4.12 build 460) - Осторожно!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Trollix
Поймал следующий глюк встроенного в AvrStudio-4 ассемблера v2.1

.macro Test
.ifdef @0
ldi tmp,$11
.else
ldi tmp,$22
.endif
.endm

.set QQQQQ = $33
nop
Test ABCDE
Test QQQQQ
nop

Транслируется в:
nop
ldi tmp,$11
ldi tmp,$22
ldi tmp,$11
nop

Т.е. .ifdef/.ifndef в макросах не работает
Trollix
Еще.
Если Вы используете директиву .overlap/.nooverlap в том же самом Атмеловском ассемблере, прекратите это делать немедленно.
В выходной HEX-файл ассемблер помещает обе секции - и перекрывающую, и ту, что должна быть перекрыта (в одних и тех же адресах), оставляя решение вопроса какая из записей главнее программатору (!!).
Георгий
А чем вообще отличаются 1 и 2 версии ассемблера? Я тут столкнулся, когда перешел на 4.12, что мои старые проекты компилируются с ошибками. Посмотрел, стоит версия 2. Установил версию 1, все прошло нормально.
Что я сам заметил - 1-я версия не берет // (комментарий) и когда запихивается двухбайтовое слово в байт, она молча берет младший байт.
Trollix
Исходя из хелпа - добавили С-подобный препроцессор (#define и т.п.) и несколько директив (.undef, .dd, .dq, .warning, .overlap).
Написали, что в .device Asm.v.1 новые камни поддерживаться не будут. Баги тоже фикситься не будут.
Вместо .device atmega128 во втором ассемблере нужно использовать строку типа:
.include "m128def.inc" (для Меги-128)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.