In-app flash write, UF2 parser, remove picotool dependency, reboot command

This commit is contained in:
Ian Gulliver
2026-04-11 22:26:54 +09:00
parent a635aa04e0
commit e3d97f4946
11 changed files with 263 additions and 76 deletions

View File

@@ -9,3 +9,6 @@ extern std::string_view firmware_name;
std::optional<ResponsePICOBOOT> handle_picoboot(const responder& resp, const RequestPICOBOOT&);
std::optional<ResponseInfo> handle_info(const responder& resp, const RequestInfo&);
std::optional<ResponseLog> handle_log(const responder& resp, const RequestLog&);
std::optional<ResponseFlashErase> handle_flash_erase(const responder& resp, const RequestFlashErase&);
std::optional<ResponseFlashWrite> handle_flash_write(const responder& resp, const RequestFlashWrite&);
std::optional<ResponseReboot> handle_reboot(const responder& resp, const RequestReboot&);

View File

@@ -74,6 +74,46 @@ struct ResponseLog {
auto as_tuple() { return std::tie(entries); }
};
struct RequestFlashErase {
static constexpr int8_t ext_id = 8;
uint32_t addr;
uint32_t len;
auto as_tuple() const { return std::tie(addr, len); }
auto as_tuple() { return std::tie(addr, len); }
};
struct ResponseFlashErase {
static constexpr int8_t ext_id = 9;
auto as_tuple() const { return std::tie(); }
auto as_tuple() { return std::tie(); }
};
struct RequestFlashWrite {
static constexpr int8_t ext_id = 10;
uint32_t addr;
std::span<const uint8_t> data;
auto as_tuple() const { return std::tie(addr, data); }
auto as_tuple() { return std::tie(addr, data); }
};
struct ResponseFlashWrite {
static constexpr int8_t ext_id = 11;
auto as_tuple() const { return std::tie(); }
auto as_tuple() { return std::tie(); }
};
struct RequestReboot {
static constexpr int8_t ext_id = 12;
auto as_tuple() const { return std::tie(); }
auto as_tuple() { return std::tie(); }
};
struct ResponseReboot {
static constexpr int8_t ext_id = 13;
auto as_tuple() const { return std::tie(); }
auto as_tuple() { return std::tie(); }
};
struct RequestListTests {
static constexpr int8_t ext_id = 125;
auto as_tuple() const { return std::tie(); }