реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Баг в IAR Embedded Workbench 6.10 для AVR, Тем, кто работает на ассемблере
С_Ч
сообщение Oct 22 2012, 08:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 22-10-12
Из: г. Москва
Пользователь №: 74 038



Скачал,. запустил, вылечил и начал работать и столкнулся с мистикой. Процессор ATmega16U4. Команда lpm r0,Z+ вызывает ошибку компилятора. Пишет ошибка синтаксиса. Полез в даташит - все правильно пишу. После двух дней экспериментов обнаружилось следующее. В подключаемом файле iom16u4.inc (где определяются имена битов, находится в каталоге xxx/avr/inc/bitdefinition) буквой Z определяется флаг нуля в регистре SREG. И этой же буквой определяется пара индексных регистров (r30:r31). Поэтому все команды с адресацией по Z вызывают ошибку компилирования. Вылечил заменой имен битов регистра SREG на SREG_имя бита (SREG_Z) в файле iom16u4.inc. Кстати, так у ATMELа сделано. Я считаю баг очень серьезный, но я про него ничего не мог найти в инете, в т.ч. и на этом форуме. Таки дела.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 22 2012, 10:12
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Бывает...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
С_Ч
сообщение Oct 22 2012, 11:52
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 22-10-12
Из: г. Москва
Пользователь №: 74 038



И ещё косячок. Для написания комментов используйте СИшные символы /*-----*/ для блока и // до конца строки. Символ ";" не всегда работает, хотя вроде заявлен в даташите. Пример. Так "#define temp r16 ;коментарии" - не работает (не переопределяет r16), причем ошибку синтаксиса не пишет. А так "#define temp r16 //коментарии" работает. Если ";" применяешь после ассемблерной команды или вначале строки, то все работает.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 22 2012, 14:16
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Думаю, что это не баг а фича.
Раз уж начали в стиле си строку то и комментарии тоже должны быть в том же стиле. По мне так нормально.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
ut1wpr
сообщение Oct 31 2012, 06:06
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 98
Регистрация: 20-06-05
Пользователь №: 6 150



Цитата(С_Ч @ Oct 22 2012, 11:20) *
Процессор ATmega16U4. Команда lpm r0,Z+ вызывает ошибку компилятора. Пишет ошибка синтаксиса.
Мда. Жалко, я не пишу на АСМе давненько. А не пробовали lpm z0,[Z+] ?

Сообщение отредактировал ut1wpr - Oct 31 2012, 06:06
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 07:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016