flash: retry 3 times when attempting to reset the serial port

Signed-off-by: Ron Evans <ron@hybridgroup.com>
Этот коммит содержится в:
Ron Evans 2020-04-13 14:34:54 +02:00 коммит произвёл Ayke
родитель e181199305
коммит bb540df2d1

14
main.go
Просмотреть файл

@ -473,17 +473,23 @@ func Run(pkgName string, options *compileopts.Options) error {
}) })
} }
func touchSerialPortAt1200bps(port string) error { func touchSerialPortAt1200bps(port string) (err error) {
retryCount := 3
for i := 0; i < retryCount; i++ {
// Open port // Open port
p, err := serial.Open(port, &serial.Mode{BaudRate: 1200}) p, e := serial.Open(port, &serial.Mode{BaudRate: 1200})
if err != nil { if e != nil {
return fmt.Errorf("opening port: %s", err) time.Sleep(1 * time.Second)
err = e
continue
} }
defer p.Close() defer p.Close()
p.SetDTR(false) p.SetDTR(false)
return nil return nil
} }
return fmt.Errorf("opening port: %s", err)
}
func flashUF2UsingMSD(volume, tmppath string) error { func flashUF2UsingMSD(volume, tmppath string) error {
// find standard UF2 info path // find standard UF2 info path