Habe so einen bootloader für Mega8 + MCP2515 gerade fertig gebaut. Allerdings mit avr-gcc und ein bisschen inline assembler. Hier mal spaßeshalber ein Protokollmitschnitt wo zusehen ist wie die ersten 128 bytes geflasht werden. (0x01 ist der Mega8 und 0x00 ist der PC programmer)
Code:
# DST SRC FUNCTION COMMAND RTR LEN DATA
=====================================================================================
1 0xff 0x01 APP_CTRL ALIVE 0 0x0
2 0xff 0x01 FNC 2 GET 0 0x3 0x04 0x00 0x12 "..."
3 0x01 0x00 PRGM_CMD HELLO 1 0x0
4 0x01 0x00 PRGM_CMD HELLO 1 0x0
5 0xff 0x01 APP_CTRL ALIVE 0 0x0
6 0x01 0x00 APP_CTRL RESET 0 0x0
7 0xff 0x01 PRGM_CMD HELLO 0 0x2 0x11 0x00 ".."
8 0x01 0x00 PRGM_CMD PCB 1 0x0
9 0x00 0x01 PRGM_CMD PCB 0 0x8 0x6d 0x38 0x76 0x32 0x20 0x20 0x20 0x20 "m8v2 "
10 0x01 0x00 PRGM_CMD SIZE 1 0x0
11 0x00 0x01 PRGM_CMD SIZE 0 0x8 0x00 0x18 0x00 0x00 0x40 0x00 0xe0 0x01 "....@..."
12 0x01 0x00 PRGM_CMD STA 0 0x4 0x00 0x00 0x00 0x00 "...."
13 0x00 0x01 PRGM_SEQ 0x00 1 0x0
14 0x01 0x00 PRGM_SEQ 0x00 0 0x8 0x1e 0xc0 0x7f 0xc2 0x38 0xc0 0x37 0xc0 "...8.7."
15 0x01 0x00 PRGM_SEQ 0x01 0 0x8 0x36 0xc0 0x35 0xc0 0x34 0xc0 0x33 0xc0 "6.5.4.3."
16 0x01 0x00 PRGM_SEQ 0x02 0 0x8 0x32 0xc0 0x90 0xc5 0x30 0xc0 0x2f 0xc0 "2...0./."
17 0x01 0x00 PRGM_SEQ 0x03 0 0x8 0x2e 0xc0 0x2d 0xc0 0x2c 0xc0 0x2b 0xc0 "..-.,.+."
18 0x01 0x00 PRGM_SEQ 0x04 0 0x8 0x89 0xc2 0x29 0xc0 0x28 0xc0 0x0c 0x10 "..).(..."
19 0x01 0x00 PRGM_SEQ 0x05 0 0x8 0x16 0x1d 0x25 0x2f 0x3a 0x47 0x54 0x63 "..%/:GTc"
20 0x01 0x00 PRGM_SEQ 0x06 0 0x8 0x71 0x80 0x8e 0x9b 0xa7 0xb2 0xbc 0xc5 "q......."
21 0x01 0x00 PRGM_SEQ 0x07 0 0x8 0xcd 0xd3 0xd9 0xde 0xe3 0x00 0x11 0x24 ".......$"
22 0x00 0x01 PRGM_CMD FIN 1 0x0
23 0x01 0x00 PRGM_CMD STA 0 0x4 0x40 0x00 0x00 0x00 "@..."
24 0x00 0x01 PRGM_SEQ 0x00 1 0x0
25 0x01 0x00 PRGM_SEQ 0x00 0 0x8 0x1f 0xbe 0xcf 0xe5 0xd4 0xe0 0xde 0xbf "........"
26 0x01 0x00 PRGM_SEQ 0x01 0 0x8 0xcd 0xbf 0x11 0xe0 0xa0 0xe6 0xb0 0xe0 "........"
27 0x01 0x00 PRGM_SEQ 0x02 0 0x8 0xe2 0xe6 0xfd 0xe0 0x02 0xc0 0x05 0x90 "........"
28 0x01 0x00 PRGM_SEQ 0x03 0 0x8 0x0d 0x92 0xac 0x35 0xb1 0x07 0xd9 0xf7 "...5...."
29 0x01 0x00 PRGM_SEQ 0x04 0 0x8 0x11 0xe0 0xac 0xe5 0xb1 0xe0 0x01 0xc0 "........"
30 0x01 0x00 PRGM_SEQ 0x05 0 0x8 0x1d 0x92 0xa3 0x37 0xb1 0x07 0xe1 0xf7 "...7...."
31 0x01 0x00 PRGM_SEQ 0x06 0 0x8 0xf0 0x92 0x73 0x01 0x29 0xc3 0xc4 0xcf "..s.)..."
32 0x01 0x00 PRGM_SEQ 0x07 0 0x8 0xcf 0x93 0xdf 0x93 0xcd 0xb7 0xde 0xb7 "........"
33 0x00 0x01 PRGM_CMD FIN 1 0x0
Lesezeichen