raspberrypi / pico-sdk

BSD 3-Clause "New" or "Revised" License
3.26k stars 838 forks source link

Implement Pioasm for Go (TinyGo) #1604

Closed soypat closed 2 months ago

soypat commented 5 months ago

This PR answers the issue https://github.com/tinygo-org/tinygo/issues/1953, basically answering the question "How PIO will be implemented in TinyGo?".

Most of the discussion of design is also contained inside https://github.com/tinygo-org/tinygo/pull/1983 (initial PR)

In the end development continued in a separate repository: https://github.com/tinygo-org/pio

It'd be great to get a green-light from main TinyGo stakeholders: @deadprogram, @aykevl, @kenbell

deadprogram commented 5 months ago

I think this would be a good feature to make available to the broader community now that it is working. :smile_cat:

Kudos to @soypat for doing all the heavy lifting on this!

peterharperuk commented 5 months ago

I would imagine we'd need some "test" and or example code

kilograham commented 5 months ago

I'm happy to merge it if it has the TinyGO community blessing.

soypat commented 5 months ago

While we wait for objetors to the PR I'd like to ask if there's a predetermined we could add examples on how to use this with Go? Would it be acceptable to add a link in the pioasm tool help text pointing to examples of Go usage? Namely piolib

deadprogram commented 2 months ago

Whoops, finally getting back to this. :smiley_cat:

@soypat is there anything still needing to be done on this PR? Also, anything needing to be updated in https://github.com/tinygo-org/pio to match it?

soypat commented 2 months ago

@deadprogram All that is needed is this being merged as the pio library is already dependent on this!

deadprogram commented 2 months ago

Thank you very much for working on this @soypat and to @kilograham for review!

nickaxgit commented 2 weeks ago

Thank you chaps, excited to try this … been watching from the sidelines, PIO in Go should be an awesome combination, much of the Pi Pico Toolchain is extraordinarily complex, and/or broken (at least on my machines, in every flavour).. hoping that TinyGo will be my salvation.