48 Commits (6f201f7f4c4d3223eb1e30658a97c6776c82926a)

Author SHA1 Message Date
Matt Knight 1dbdd0f80e
Fix eval branch quota for PIO comparison tests (#76) 1 year ago
David Sugar 1cef56ad9d
Enable XIP using stage 2 bootloader (#73)
* flash enable xip calls stage two bootloader using inline assembly

* flash erase/program now works in all modes (Debug, ReleaseSmall, ReleaseSafe, ReleaseFast)

* further docs added
1 year ago
Vlad Panazan 35e9757bdb
fix i2c reading and add bus scan example (#71) 1 year ago
Matt Knight 2b5c6096b0
builtin type inference fix (#68) 1 year ago
Felix Queißner 371d4efde4
Runs zig fmt, implements a good bunch of I²C functions (#65)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
1 year ago
Matt Knight 316e241a88
DMA API, and time API improvements from SYCL 2023 workshop (#63) 1 year ago
Matt Knight 7b7caa9eb4
improve ADC API (#62) 1 year ago
Vlad Panazan abff6d1f4b
add ws2812 pio example (#54) 1 year ago
Matt Knight 886234b882
improve timer API (#60) 1 year ago
Matt Knight a2ccaff13f
improve GPIO API (#59) 1 year ago
Matt Knight d05e8779b8
workaround for compiler bug where volatile is not propagated over a field access (#57) 1 year ago
Matt Knight ed12908afc
turn on PIO comparison tests (#58) 1 year ago
joelpaulkoch c74f6f0634
Fix: call renamed is_uart functions (#55) 1 year ago
Matt Knight c1c19d221e
Gpio api (#51)
* improve GPIO API

* fix test, update microzig

* first DMA functions, new abstraction for enumerating peripherals

* rebase main

* fix call to reset()
1 year ago
David Sugar 812fb44180
USB Device (#40) 1 year ago
David Sugar 975e5e446c
Random number generator (#46) 1 year ago
Matt Knight 344f60b864
add comptime keyword where it's needed (#42) 1 year ago
Matt Knight ed60b5f2e7
Pio updates (#41)
* program loading API

* build examples in CI

* build fixes
1 year ago
Vlad Panazan 08779dfe02
Add SPI read function (#38) 1 year ago
Vesim b0e346608e
PIO assembler (#25)
* WIP pio assembler

* add comparison tests against the official assembler

* tokenizer passing tests

* add buildkite pipeline

* comparison tests

* assembler now outputting a few programs similar to official

* largely complete

---------

Co-authored-by: Matt Knight <mattnite@proton.me>
1 year ago
David Sugar 20e4c9f8f6
Flash from user code (#35)
* support for a subset of the bootrom functions added: fast bit count/ manipulation functions (tested), fast bulk memory fill/ copy functions (tested), flash access functions (NOT tested), debugging support functions (not implemented), miscellaneous functions (not implemented).

* added support for erasing and programming flash from user code. between the first and last call in a programming sequence, the SSI is not in a state where it can handle XIP accesses, so the code that calls the intervening functions must be located in SRAM. this is why I added the time_critical section to rp2040.ld (maybe one should create a dedicated section in ram that is rwx and keep data rwNx).

* flash_program.zig example added
1 year ago
Vlad Panazan a4de9d2f3e
add SPI hal (#33) 2 years ago
Matt Knight 58d73abc08
Update microzig (#24)
* update microzig

* update paths and for loops

---------

Co-authored-by: mattnite <mattnite@users.noreply.github.com>
2 years ago
Matt Knight 7d81ecf654
Regz rewrite (#20)
* update to new regz output

* snake case

* update with changes to microzig

* remove symlink

* add microzig submodule
2 years ago
Matt Knight 0713809eaf
catch up to master (#17) 2 years ago
Matt Knight 144d557357 remove hal.uart.panic 2 years ago
Matt Knight e9af302b69
uart improvements and improved definition of how many clock units there are (#16) 2 years ago
Felix "xq" Queißner b0b90a7cf0 Implements UART.reader() 2 years ago
Felix "xq" Queißner 7b69211d41 Implements gpio.setPullUpDown 2 years ago
Felix "xq" Queißner 86d383e673 Implements ADC and PWM support in pin config, simplifies Pins() type. 2 years ago
Felix "xq" Queißner 5c07800cdb Removes debug code. 2 years ago
Felix "xq" Queißner c899778c87 Clock setup fixes. 2 years ago
Felix "xq" Queißner a55df1b52c Some debug logs in adc.reset() and resets.reset(), fixes some bugs with booleans. 2 years ago
Felix "xq" Queißner fe14d4f03b Implements input, pull up/down and uart routing. 2 years ago
Matt Knight 5c853fd23a
use compile errors instead of comments (#15) 2 years ago
Matt Knight 7c8d430237
adc bindings, mostly there but not quite (#14) 2 years ago
Felix Queißner 29aee14fd2
Update to latest master. (#13)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
2 years ago
Matt Knight d4a74cb4f3
move examples in here (#12) 2 years ago
Matt Knight 9fa748ff13
Pin config (#9)
* pin config

* wip

* wip

* try some experimental pwm stuff
2 years ago
Matt Knight f0e51f8302
Uart (#8)
* refined clock configuration, uart works with clk_peri at xosc frequency

* fix pll_sys configuration
2 years ago
Matt Knight 2d89410305
add directive to inline asm (#6) 2 years ago
Matt Knight 8751f6753d
Clock config (#5)
* use array access for better codegen

* frequency counter

* wip

* wip

* refactor clock config and plls to reduce binary size
2 years ago
Matt Knight ed05258e7e clean up gpios 2 years ago
Matt Knight 303c9f183f add busy sleep functions 2 years ago
Maciej 'vesim' Kuliński 0659bcd8c6 multicore: use camelCase for function names 2 years ago
Maciej 'vesim' Kuliński e541f966d4 multicore: add initial support 2 years ago
Matt Knight 7d68b0bcba pads bank bits set when setting gpio function 2 years ago
Matt Knight a501e63286 init 2 years ago