[an error occurred while processing this directive]
|
Проверить с помощью AVRStudio прошивку просто. Открываешь сделанный из нее hex файл в Студии - указываешь кристалл в который ее собираешься зашить - она его дисассемблирует. Далее можно симулировать его исполнение. В данной прошивке есть глюк в самом начале:
+00000000: C00A RJMP +0x000A ; Destination: 0x00000B
+00000001: C009 RJMP +0x0009 ; Destination: 0x00000B
+00000002: C008 RJMP +0x0008 ; Destination: 0x00000B
+00000003: C007 RJMP +0x0007 ; Destination: 0x00000B
+00000004: C049 RJMP +0x0049 ; Destination: 0x00004E
+00000005: C005 RJMP +0x0005 ; Destination: 0x00000B
+00000006: C004 RJMP +0x0004 ; Destination: 0x00000B
+00000007: C003 RJMP +0x0003 ; Destination: 0x00000B
+00000008: C002 RJMP +0x0002 ; Destination: 0x00000B
+00000009: C001 RJMP +0x0001 ; Destination: 0x00000B
+0000000A: C000 RJMP +0x0000 ; Destination: 0x00000B
+0000000B: ED0F LDI R16,0xDF ; 0xDF = 0b11011111 = 223
+0000000C: BF0D OUT 0x3D,R16
+0000000D: E003 LDI R16,0x03 ; 0x03 = 0b00000011 = 3
+0000000E: BB07 OUT 0x17,R16
+0000000F: EF0F LDI R16,0xFF ; 0xFF = 0b11111111 = 255
+00000010: BB08 OUT 0x18,R16
+00000011: E007 LDI R16,0x07 ; 0x07 = 0b00000111 = 7
+00000012: BB01 OUT 0x11,R16
+00000013: E200 LDI R16,0x20 ; 0x20 = 0b00100000 = 32
Первая строка - вектор RESET - переход на адрес 0x000A, а по этому адресу мы видим переход обратно, на адрес 0х0000.
Осмысленный код начинается похоже с адреса 0х000В.
Можно попробовать подправить hex файл вручную.
В первой строке прошивки 11 - й символ исправить с А на В (латинские).