используя определения в сборке - PullRequest
3 голосов
/ 19 сентября 2011

Я пытаюсь выполнить некоторую предварительную обработку в сборке, используя компилятор imagecraft avr.Пока что мое лучшее предположение выглядит следующим образом:

#define TEST 1
#if TEST == 1
ldi R20, 0xFF
#else
ldi R20, 0xF1
#endif

Однако при этом выдается ошибка компилятора:

absolute expression expected

Как мне решить эту проблему или есть лучший способ сделать это?

Кеннет

1 Ответ

1 голос
/ 20 сентября 2011

Создать ответ наподобие этого:

После некоторых копаний я нашел правильное решение. По-видимому, iccavr оставляет за собой право .define объявлять псевдоним для регистров, поэтому выше, если на самом деле разрешено значение

.if R1 == 1

, который сгенерировал сообщение об ошибке. Решение состоит в том, чтобы объявить символическую константу вместо определения, используя синтаксис:

TEST = 1 

Тогда все работает как задумано.

...