Отвечаю сам себе, может кому пригодится....
описание бут блока в файле doc7618.pdf
но на сайте атмела сам бут блок последнее время не дают...
бут блок называется AT90USB162 USB Bootloader v1.0.5
Hex файл к нему называется bl_usb_162v105.a90
и для версии v1.0.5 работоспособен вот этот код
Код
;-----------------------------------------------------------------
;------------------- BootVhodi --------------------
;-----------------------------------------------------------------
; Вход в бутлоадер
.if (ProcAT90USB162) ;
;AT90USB162 USB Bootloader v1.0.5 файл называется bl_usb_162v105.a90
.equ SP_Vhod = 0x3C20 / 2; делать на 2, т.к. у нас в словах.
BootVhodi:
; rjmp SP_Vhod; но до SP_Vhod не допрыгнуть - далеко
; поэтому сделаем вид, что мы были в процедуре и нам надо из неё выйти
ldi R16_Tmp1, low(SP_Vhod) ; Код самопрограмматора в самом конце
push R16_Tmp1
ldi R16_Tmp1,high(SP_Vhod)
push R16_Tmp1
ret
.endif
разработанный на основании этого кода
Код
3000: 04 b7 в r16, 0x34 / / получить флаги
3002: 00 23 и R16, R16 / / если ни один набор
3004: 19. F0 breq +6 / / пропустить HWB проверить
3006: 4f 99 SBIC 0x09, 7 / / иначе пропустите следующий, если HWB = 0
3008: 0c 94 00 00 JMP 0x0 / / HWB = 1, нет загрузчика
300c: 0c 94 10 1e JMP 0x3c20 / / HWB = 0 или не установленными флагами