Код: Выделить всё
; Считать байт и проверить его на равенство 0xff
ldi r30, lo8(1024)
ldi r31, hi8(1024)
lpm
inc r0
brne end
; заполнить таблицу словом 0xaa55
ldi r18, 0x55
ldi r19, 0xaa
mov r0, r18
mov r1, r19
ldi r19, PGSIZE
l1: ldi r18, 1
out SPMCSR, r18
spm
adiw r30, 2
dec r19
brne l1
; записать
ldi r30, lo8(1024)
ldi r31, hi8(1024)
ldi r18, 5
out SPMCSR, r18
spm
end:
rjmp end
Ожидается, что в 16 словах с адреса 1024 будет записано 0xAA55. Но они остаются незапрограммированными.
Кроме того, возник вопрос про "bootloader". В описании tiny2313 совсем ничего о нем не сказано, а фьюзы, которыми он управляется, помечены неиспользуемыми. Но про самопрограммирование там есть - запись в любую область памяти останавливает процессор на время записи, как будто вся память образует этот bootloader.
Помогите разобраться и понять, почему не работает код.
