10#ifndef TURAG_FELDBUS_FUER_BOOTLOADER_H_
11#define TURAG_FELDBUS_FUER_BOOTLOADER_H_
14#include "base_protocol.h"
20#define TURAG_FELDBUS_BOOTLOADER_GENERIC 0x01
21#define TURAG_FELDBUS_BOOTLOADER_ATMEGA 0x02
22#define TURAG_FELDBUS_BOOTLOADER_XMEGA 0x03
23#define TURAG_FELDBUS_BOOTLOADER_STM32 0x04
24#define TURAG_FELDBUS_BOOTLOADER_STM32V2 0x05
44#define TURAG_FELDBUS_BOOTLOADER_COMMAND_GET_MCUID 0x01
45#define TURAG_FELDBUS_BOOTLOADER_COMMAND_UNLOCK_BOOTLOADER 0x02
48#define TURAG_FELDBUS_BOOTLOADER_COMMAND_RECEIVE_MCU_STRING 0x03
49#define TURAG_FELDBUS_BOOTLOADER_COMMAND_RECEIVE_MCU_STRING_LENGTH 0x04
51#define TURAG_FELDBUS_BOOTLOADER_COMMAND_ENTER_BOOTLOADER 0xA1
52#define TURAG_FELDBUS_BOOTLOADER_COMMAND_START_PROGRAMM 0xAF
54#define TURAG_FELDBUS_BOOTLOADER_UNLOCK_CODE 0x4266
55#define TURAG_FELDBUS_BOOTLOADER_RESPONSE_UNLOCKED 0x00
56#define TURAG_FELDBUS_BOOTLOADER_RESPONSE_UNLOCK_REJECTED 0x01
65#define TURAG_FELDBUS_BOOTLOADER_AVR_GET_PAGE_SIZE 0x11
66#define TURAG_FELDBUS_BOOTLOADER_AVR_GET_FLASH_SIZE 0x13
67#define TURAG_FELDBUS_BOOTLOADER_AVR_PAGE_WRITE 0xAA
68#define TURAG_FELDBUS_BOOTLOADER_AVR_DATA_READ 0xAB
71#define TURAG_FELDBUS_BOOTLOADER_AVR_RESPONSE_SUCCESS 0x00
72#define TURAG_FELDBUS_BOOTLOADER_AVR_RESPONSE_FAIL_SIZE 0xFA
73#define TURAG_FELDBUS_BOOTLOADER_AVR_RESPONSE_FAIL_ADDRESS 0xFB
74#define TURAG_FELDBUS_BOOTLOADER_AVR_RESPONSE_FAIL_NOT_SUPPORTED 0xFC
75#define TURAG_FELDBUS_BOOTLOADER_AVR_RESPONSE_FAIL_CONTENT 0xFD
82#define TURAG_FELDBUS_BOOTLOADER_ATMEGA_GET_FUSES 0x12
89#define TURAG_FELDBUS_BOOTLOADER_XMEGA_GET_FUSES 0x12
90#define TURAG_FELDBUS_BOOTLOADER_XMEGA_GET_REVISION 0x14
98#define TURAG_FELDBUS_BOOTLOADER_STM32V2_GET_PAGE_SIZE 0x11
99#define TURAG_FELDBUS_BOOTLOADER_STM32V2_GET_FLASH_SIZE 0x13
101#define TURAG_FELDBUS_BOOTLOADER_STM32V2_GET_APP_ADDRESS_MODE 0x15
109#define TURAG_FELDBUS_BOOTLOADER_STM32V2_APP_ADDRESS_MODE_DEDICATED_PAGE 0x00
113#define TURAG_FELDBUS_BOOTLOADER_STM32V2_APP_ADDRESS_MODE_HIDDEN_IN_VECTOR_TABLE 0x01
123#define TURAG_FELDBUS_BOOTLOADER_STM32V2_TRANSMIT_APP_RESET_VECTOR 0x16
132#define TURAG_FELDBUS_BOOTLOADER_STM32V2_COMMIT_APP_RESET_VECTOR 0x17
138#define TURAG_FELDBUS_BOOTLOADER_STM32V2_GET_APP_RESET_VECTOR_STORAGE_ADDRESS 0x18
141#define TURAG_FELDBUS_BOOTLOADER_STM32V2_PAGE_WRITE 0xAA
142#define TURAG_FELDBUS_BOOTLOADER_STM32V2_DATA_READ 0xAB
147#define TURAG_FELDBUS_BOOTLOADER_STM32V2_RESPONSE_SUCCESS 0x00
148#define TURAG_FELDBUS_BOOTLOADER_STM32V2_RESPONSE_FAIL_SIZE 0xFA
149#define TURAG_FELDBUS_BOOTLOADER_STM32V2_RESPONSE_FAIL_ADDRESS 0xFB
150#define TURAG_FELDBUS_BOOTLOADER_STM32V2_RESPONSE_FAIL_NOT_SUPPORTED 0xFC
151#define TURAG_FELDBUS_BOOTLOADER_STM32V2_RESPONSE_FAIL_FLASH 0xFD
152#define TURAG_FELDBUS_BOOTLOADER_STM32V2_RESPONSE_FAIL_MISMATCH 0xFE
165#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_INVALID 0x0000
166#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_STRING 0xFFFF
168#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA8 0x0793
169#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA16 0x0394
170#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA32 0x0295
171#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA128 0x0297
172#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA88 0x0A93
173#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA168 0x0694
174#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_ATMEGA644 0x0996
176#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_XMEGA16D4 0x9442
177#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_XMEGA32D4 0x9542
178#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_XMEGA64D4 0x9647
179#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_XMEGA128D4 0x9747
181#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_XMEGA16E5 0x9445
182#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_XMEGA32E5 0x944C
187#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_STM32F051x8 0x1001
188#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_STM32F030x4 0x1002
189#define TURAG_FELDBUS_BOOTLOADER_MCU_ID_STM32F031x6 0x1003