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

@@ -117,6 +117,21 @@ func (c *Client) Log() (*ResponseLog, error) {
return first(roundTrip[ResponseLog](c, &RequestLog{}))
}
func (c *Client) FlashErase(addr, length uint32) error {
_, err := first(roundTrip[ResponseFlashErase](c, &RequestFlashErase{Addr: addr, Len: length}))
return err
}
func (c *Client) FlashWrite(addr uint32, data []byte) error {
_, err := first(roundTrip[ResponseFlashWrite](c, &RequestFlashWrite{Addr: addr, Data: data}))
return err
}
func (c *Client) Reboot() error {
_, err := first(roundTrip[ResponseReboot](c, &RequestReboot{}))
return err
}
func (c *Client) ListTests() (*ResponseListTests, error) {
return first(roundTrip[ResponseListTests](c, &RequestListTests{}))
}

View File

@@ -24,6 +24,21 @@ type ResponseLog struct {
Entries []LogEntry
}
type RequestFlashErase struct {
Addr uint32
Len uint32
}
type ResponseFlashErase struct{}
type RequestFlashWrite struct {
Addr uint32
Data []byte
}
type ResponseFlashWrite struct{}
type RequestReboot struct{}
type ResponseReboot struct{}
type RequestListTests struct{}
type ResponseListTests struct {
Names []string
@@ -62,6 +77,12 @@ func init() {
msgpack.RegisterExt(5, (*ResponseInfo)(nil))
msgpack.RegisterExt(6, (*RequestLog)(nil))
msgpack.RegisterExt(7, (*ResponseLog)(nil))
msgpack.RegisterExt(8, (*RequestFlashErase)(nil))
msgpack.RegisterExt(9, (*ResponseFlashErase)(nil))
msgpack.RegisterExt(10, (*RequestFlashWrite)(nil))
msgpack.RegisterExt(11, (*ResponseFlashWrite)(nil))
msgpack.RegisterExt(12, (*RequestReboot)(nil))
msgpack.RegisterExt(13, (*ResponseReboot)(nil))
msgpack.RegisterExt(125, (*RequestListTests)(nil))
msgpack.RegisterExt(124, (*ResponseListTests)(nil))
msgpack.RegisterExt(127, (*RequestTest)(nil))