|
Но к встроенному Helpу у меня еще меньше доверия, чем DS.
Уже обнаруженные баги встроенного HELP:
- введена несуществующая в tiny26 команда EIJMP
- синтаксис команд STD Y+q,Rr и STD Z+q,Rr декларируется неправильно (ST Y+q,Rr и ST Z+q,Rr )
- отсутствует команда CLS.
Я бы может и поостергся использовать команды LPM Rd,Z и LPM Rd,Z+, но жизнь заставляет. Флэш забита под завязку, а замена кодов LPM на LPM Rd,Z и LPM Rd,Z+ позволит мне чуть-чуть сэкономить.
В общем, какие мнения насчет этих команд? Это ошибка DS или чтобы сразу же не выпускать ERRATy они были благоразумно исключены из даташитовского списка команд (а в ассемблере остались)?
PS. Симулируются команды LPM Rd,Z и LPM Rd,Z+ правильно.
PPS. Среда разработки - AStudio 4.07
PPPS. Для проверки на железе я использовал следующую тестовую программу (на голой ATtiny26). Как и полагается по логике - на всех ногах меандры.
.include "tn26def.inc"
.cseg
ldi ZL, Low(Table*2)
ldi ZH, High(Table*2)
ser R18
out DDRA,R18
out DDRB,R18
Loop:
wdr
lpm R16,Z+
andi ZL,0xFD
lpm R17,Z
out PORTA,R16
out PORTB,R17
rjmp Loop
.org 0x10
Table:
.db 0x55, 0xAA
E-mail: info@telesys.ru