45 #include "contiki-net.h"
47 #define DISCO_UDP_PORT 60002
48 #define DISCO_DESCRIPTORS_LOC
50 #define DATA_CHUNK_LEN 64
53 #define DISCO_TIMEOUT_PREPARE (CLOCK_SECOND / 2)
54 #define DISCO_TIMEOUT_ABORT (CLOCK_SECOND * 10)
55 #define DISCO_TIMEOUT_REBOOT CLOCK_SECOND
58 #define DISCO_STATE_LISTENING 0x00
59 #define DISCO_STATE_PREPARING 0x01
60 #define DISCO_STATE_READY 0x02
61 #define DISCO_STATE_REBOOTING 0x03
64 #define DISCO_CMD_INIT 0x00
65 #define DISCO_CMD_SWITCH 0x01
66 #define DISCO_CMD_WRITE 0x02
67 #define DISCO_CMD_DONE 0x03
70 #define DISCO_ERR_GENERIC 0xFF
71 #define DISCO_ERR_BAD_LEN 0xFE
72 #define DISCO_ERR_NOT_READY 0xFD
73 #define DISCO_ERR_BAD_OFFSET 0xFC
74 #define DISCO_ERR_PROTECTED 0xFB
75 #define DISCO_ERR_INIT_DONE 0xFA
78 #define DISCO_FLEN_CMD 1
79 #define DISCO_FLEN_IMG 1
80 #define DISCO_FLEN_ADDR 3
81 #define DISCO_FLEN_DATA 64
84 #define DISCO_LEN_INIT (DISCO_FLEN_CMD + DISCO_FLEN_IMG)
85 #define DISCO_LEN_DONE DISCO_FLEN_CMD
86 #define DISCO_LEN_WRITE (DISCO_FLEN_CMD + DISCO_FLEN_ADDR + DISCO_FLEN_DATA)
87 #define DISCO_LEN_SWITCH (DISCO_FLEN_CMD + DISCO_FLEN_IMG)
90 #define DISCO_RESPONSE_NONE 0
91 #define DISCO_RESP_LEN_ERR DISCO_FLEN_CMD
92 #define DISCO_RESP_LEN_INIT DISCO_FLEN_CMD
93 #define DISCO_RESP_LEN_DONE DISCO_FLEN_CMD
94 #define DISCO_RESP_LEN_WRITE (DISCO_FLEN_CMD + DISCO_FLEN_ADDR)
95 #define DISCO_RESP_LEN_SWITCH (DISCO_FLEN_CMD + DISCO_FLEN_IMG)
103 #define BOOTTY_CMD_LOCATION 0xFEFF
105 #define BOOTTY_CMD_JUMP_TO_APP 0x80
106 #define BOOTTY_CMD_COPY_IMAGE 0x40
108 #define SECTOR_UNPROTECTED 0
109 #define SECTOR_PROTECTED 1
113 struct disco_request_pdu {
116 uint8_t data[DATA_CHUNK_LEN];
119 struct disco_response_pdu {
#define PROCESS_NAME(name)
Declare the name of a process.