23#ifdef USE_SHD_FIRMWARE_DATA
30namespace shelly_dimmer {
79 const uint32_t ram_start, ram_end;
80 const uint32_t fl_start, fl_end;
81 const uint16_t fl_pps;
82 const uint32_t *fl_ps;
83 const uint32_t opt_start, opt_end;
84 const uint32_t mem_start, mem_end;
94 uint8_t option1, option2;
stm32_err_t stm32_wunprot_memory(const stm32_unique_ptr &stm)
stm32_err_t stm32_reset_device(const stm32_unique_ptr &stm)
constexpr auto STREAM_OPT_I2C
constexpr auto STM32_MAX_TX_FRAME
stm32_unique_ptr stm32_init(uart::UARTDevice *stream, const uint8_t flags, const char init)
constexpr auto STREAM_OPT_CMD_INIT
constexpr auto STREAM_OPT_RETRY
struct Stm32 { uart::UARTDevice *stream; uint8_t flags; struct VarlenCmd *cmd_get_reply; uint8_t bl_version; uint8_t version; uint8_t option1, option2; uint16_t pid; stm32_cmd_t *cmd; const stm32_dev_t *dev;} stm32_t
constexpr auto STREAM_SERIAL
stm32_err_t stm32_readprot_memory(const stm32_unique_ptr &stm)
stm32_err_t stm32_crc_wrapper(const stm32_unique_ptr &stm, uint32_t address, uint32_t length, uint32_t *crc)
struct Stm32Cmd { uint8_t get; uint8_t gvr; uint8_t gid; uint8_t rm; uint8_t go; uint8_t wm; uint8_t er; uint8_t wp; uint8_t uw; uint8_t rp; uint8_t ur; uint8_t crc;} stm32_cmd_t
stm32_err_t stm32_write_memory(const stm32_unique_ptr &stm, uint32_t address, const uint8_t *data, const unsigned int len)
constexpr auto STM32_MAX_RX_FRAME
constexpr auto STM32_MASS_ERASE
constexpr auto STM32_MAX_PAGES
stm32_err_t stm32_runprot_memory(const stm32_unique_ptr &stm)
stm32_err_t stm32_go(const stm32_unique_ptr &stm, const uint32_t address)
stm32_err_t stm32_crc_memory(const stm32_unique_ptr &stm, const uint32_t address, const uint32_t length, uint32_t *const crc)
stm32_err_t stm32_read_memory(const stm32_unique_ptr &stm, const uint32_t address, uint8_t *data, const unsigned int len)
uint32_t stm32_sw_crc(uint32_t crc, uint8_t *buf, unsigned int len)
constexpr auto STREAM_I2C
struct Stm32Dev { const uint16_t id; const char *name; const uint32_t ram_start, ram_end; const uint32_t fl_start, fl_end; const uint16_t fl_pps; const uint32_t *fl_ps; const uint32_t opt_start, opt_end; const uint32_t mem_start, mem_end; const uint32_t flags;} stm32_dev_t
constexpr auto STREAM_OPT_BYTE
constexpr auto STREAM_OPT_GVR_ETX
constexpr auto STREAM_OPT_STRETCH_W
stm32_err_t stm32_erase_memory(const stm32_unique_ptr &stm, uint32_t spage, uint32_t pages)
std::unique_ptr< stm32_t, void(*)(stm32_t *)> stm32_unique_ptr
enum Stm32Err { STM32_ERR_OK=0, STM32_ERR_UNKNOWN, STM32_ERR_NACK, STM32_ERR_NO_CMD, } stm32_err_t
stm32_err_t stm32_wprot_memory(const stm32_unique_ptr &stm)
enum Flags { F_NO_ME=1<< 0, F_OBLL=1<< 1, } flags_t
Providing packet encoding functions for exchanging data with a remote host.