tinygo-org / drivers

TinyGo drivers for sensors, displays, wireless adaptors, and other devices that use I2C, SPI, GPIO, ADC, and UART interfaces.
https://tinygo.org
BSD 3-Clause "New" or "Revised" License
604 stars 188 forks source link

tinygo.org/x/drivers/image/png is not working #428

Open sago35 opened 2 years ago

sago35 commented 2 years ago

It works when I change the opt. At least when opt=z, r.Read() called from io.ReadAtLeast() appears to fail.

// go 
func ReadAtLeast(r Reader, buf []byte, min int) (n int, err error) {
    if len(buf) < min {
        return 0, ErrShortBuffer
    }
    for n < min && err == nil {
        var nn int
        nn, err = r.Read(buf[n:])
        n += nn
    }
    if n >= min {
        err = nil
    } else if n > 0 && err == EOF {
        err = ErrUnexpectedEOF
    }
    return
}
# not work
$ tinygo flash           --target wioterminal --size short --programmer cmsis-dap ./examples/ili9341/slideshow/
$ tinygo flash -opt z --target wioterminal --size short --programmer cmsis-dap ./examples/ili9341/slideshow/
$ tinygo flash -opt 2 --target wioterminal --size short --programmer cmsis-dap ./examples/ili9341/slideshow/

# ok
$ tinygo flash -opt s --target wioterminal --size short --programmer cmsis-dap ./examples/ili9341/slideshow/
$ tinygo flash -opt 1 --target wioterminal --size short --programmer cmsis-dap ./examples/ili9341/slideshow/
$ go version
go version go1.18.3 windows/amd64

$ tinygo version
tinygo version 0.25.0-dev-0824f3b6 windows/amd64 (using go version go1.18.3 and LLVM version 14.0.0)