141 Commits (a92518c99f0b6589b15ffce8654f5c4b8ef86a8c)
 

Author SHA1 Message Date
Felix "xq" Queißner a92518c99f Moves microzig to core/ 9 months ago
Felix "xq" Queißner 724f4659b0 Merge remote-tracking branch 'microzig/main' into merge_core 9 months ago
Felix "xq" Queißner 6ddf91c60c initial empty commit 9 months ago
Jacob Young 57e4379062
Update uf2 dependency (#160) 10 months ago
Sreehari Sreedev 8ac1db6574
packed struct => extern struct for USB (#159) 10 months ago
Jacob Young c3baa4a277
Update dependencies and add paths (#158) 10 months ago
Prince Bett f8a506ccc2
doc: add getting started tip (#156)
direct new users to microzig-examples for ease
the onboarding experience.
11 months ago
Marnix Klooster 2873e9e0b1
Change the HAL API to snake_case() from camelCase() (#151) 11 months ago
Ardelean Călin f286bc8e25
Corrected Cortex-M ABI (#149) 1 year ago
Vesim d361a622ba
add umm allocator (#148) 1 year ago
Felix Queißner 3bdb7381be
Microzig Generation 2 Build Interface (#144)
* Starts to rework build framework.
* Fully reworks build API, builds with RP2040 again.
* Adds docs and doc generation.
* Renames source to register_definitions, makes Target.configure optional.
* Adds issue tracking links.
* Drops CI for now

---------

Co-authored-by: Felix "xq" Queißner <git@random-projects.net>
1 year ago
L1ucas f0a6aa9ce1
Fix README typo (#141) 1 year ago
Francisco Llobet 2859530ac2
Fixing issues in Build to achieve v0.11.0 compatibility (#140) 1 year ago
Matt Knight 0b3be0a4cc
Update README.adoc (#139) 1 year ago
Matt Knight 6ccee6d13a
build against 0.11.0 (#138)
* build against 0.11.0

* fix typo
1 year ago
Matt Knight d4a48f65fa
anyopaque to u8 (#137) 1 year ago
Matt Knight c1ac2f4cf3
FileSource -> LazyPath (#136) 1 year ago
Vesim 9392fe0f7b
Update to master and add system registers for cortex-m (#134)
* Update to zig 0.11.0-dev.3826+7a197f124

* Add cortex-m system registers
1 year ago
Felix Queißner a49fad9730
Runs zig fmt (#133)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
1 year ago
Matt Knight 39bf0b5d55
update pr creation step (#131) 1 year ago
Pavel Burgr 3f8dd68f0d
Fix @call parameter for zig 0.11 (#130) 1 year ago
Nicolas Goy 9588941915
When adding an option, set it as app module dependency to make it available in the app root (#129) 1 year ago
binarycraft007 4e62e99e3c
update to zig master: use @memset, @memcpy builtin (#128)
Co-authored-by: Binary Craft <keep.it.sns@gmail.com>
1 year ago
Matt Knight b5edf6da6b
interrupt enable/disable for riscv and air (#127)
* rename disable/enable interrupt functions

* enable/disable interrupt functions for avr and riscv

* add todo panic
1 year ago
Matt Knight d1f1374c08
rename disable/enable interrupt functions (#126) 1 year ago
Philipp Wendel 658648b86b
Updated code to regz rewrite and added fix for i2c on ATmega328P (#125) 1 year ago
David Sugar dd491cc84f
Abstract USB device implementation (#124) 1 year ago
Matt Knight 109249913b
check if the thread of execution is in an ISR on Cortex M (#123) 1 year ago
Matt Knight ae6e619197
update to new usage of build api (#122) 1 year ago
Philipp Wendel 23482a6986
Updated parts of gpio and pin to reflect code changes from regz rewrite (#120) 1 year ago
Matt Knight ceaa9ddcb0
fix link (#117) 2 years ago
Matt Knight 5b0176e977
specify which version of zig to use (#116) 2 years ago
Matt Knight dabc9325cd
improvements from working on RP2040 (#115)
* improvements from working on RP2040

* fix missing file bug
2 years ago
Vesim 6f5b7268f6
Update to latest zig master (#114) 2 years ago
Jim Tittsler 15c5a92a3e
Fix typos (#113) 2 years ago
Matt Knight 08e7d5b01a
add check for void for microzig.hal (#112)
* add check for void for microzig.hal

* modify github actions to run on every push
2 years ago
Matt Knight b6fc3abbf7
Mimic new stdlib build API (#111)
* start on new docs to match api

* tweak the MicroZig dependency tree

* use microzig_options

* remove empty.zig

* add test programs

* keep it to one arch, bump flash for debug
2 years ago
Matt Knight 11214ed8ba
new for loop syntax and remove import-module.zig (#110)
* new for loop syntax and recursive dependencies allowed for removal of import-module.zig

* fix chip standard path

* move to build.zig

* update template too
2 years ago
Matt Knight 831cfff35c
Add rest of hardware support libraries (#109)
Automerge action step doesn't work with this setup so we'll have to
manually merge
2 years ago
Matt Knight 4bb65617a4
automerge and PR description (#108) 2 years ago
Matt Knight c244999bac
fix yaml (#107) 2 years ago
Matt Knight 417f8fa21f
Auto pr (#106)
* auto update downstream repos on pushes

* fix github actions

* add workflow dispatch and token
2 years ago
Matt Knight 2d0ee5c473
fix typo for interrupt creation function (#104) 2 years ago
Matt Knight 97ca5497da
Regz rewrite (#103)
* wip

* remove tools

* reorganized

* move hardware into their own repos

* snake_case

* use FileSource for board/chip/cpu descriptors

* are_globally_enabled -> globally_enabled

* rearrange
2 years ago
Vesim 9ccde9ff37
Update to latest zig with modules (#102) 2 years ago
Philipp Wendel e63558330b
Catchup to changes introduced by ziglang/zig#14498 (#101) 2 years ago
Marnix Klooster e1c1466d9e
Initial partial SPI support (#97)
* build.zig: Trivial rename around UART test

* mmio: Add writeRaw() to set a full register

* UART: Add TODO for auto baud rate detection

* STM32F30x Initial USART1 output/transmit support

All code assumes default chip clock configuration.
Code assumes STM32F303xB / STM32F3030xC.
Code supports only 8 data bits, 1 stop bit.

* stm32f3discovery @panic() to UART1

This is done by implementing `debugWrite()` for the board,
which only initializes UART1 if that was not yet done,
and flushes afterwards to make sure the host receives all.

* stm32f303: Support UART1 reader

This is done by implementing `rx()` and `canRead()`.

* stm32f303 UART1 correctly support 7 and 8 bits

This includes correctly masking the parity bit
on reads.

* stm32f3 UART1 support 0.5/1.5/2 stop bits

* stm32f303 UART1 simplify parity code

* stm32f303 I2C rough initial code

Allows only writing and reading single bytes.

* stm32f3 i2c: enable debug 'logging'

* Add a few comments

* I2C API changes, STM32F303 I2C multi-byte transfers

Now using controller/device terminology, instead of master/slave.

Now using 'transfer objects' to make STOPs and re-STARTs explicit,
and allow using Writer and Reader APIs.

Added 'register' abstraction.

STM32F303 I2C now supports this new API, and multi-byte transfers.

Now waiting for I2C_ISR.BUSY == 0, after setting I2C_CR2.STOP == 1.
Without this, the sequence write-stop-write caused an additional STOP
to be sent immediately the START and address of the second write.

* Make work with regz-generated registers.zig change

* Updated to match regz-generated update

* After #23 repair Reset on stm32, lpc1768

* Clean-up I2C `readRegisters()`.

* Refactor to separate read/write states

* On STM32F303, make second read call fail

Also doc comments to clarify the new API.

* STM32 I2C: Properly support multiple write calls

* I2C STM32: Fix release mode compile error

...on top of an earlier commit on this branch.

* I2C Add 'write register' shorthand functions

* Make sure vector_table is correctly exported

It needs to be a non-`comptime` `var` for `@export` to work properly.

The only 'documentation' for this behavior currently seems GitHub comment
https://github.com/ziglang/zig/issues/5157#issuecomment-618933196 .

This issue was introduced in 1c17304 for PR #27,
which broke at least ARM-based STM32F303.

* fix missing vector table on ARM

* Revert "Merge branch 'fix-vector_table-export' into marnix-master"

This reverts commit 8ea0a74e1031cd0b88abe0283f179f0cf20f450c, reversing
changes made to 355a3618080d28c5da6e044773e6449989355fe5.

* Temp commit for SPI

* Check new I2C target_speed config setting

* Corrected incorrect doc comment

* Initial SPI transfer support for STM32F303

* SPI device CS pin is now used

* Revert accidentally committed debug flag.

* SPI: Add shorthands for 'register-based' devices.

* Additional fix to remove PE3 pin dependency

* SPI: Renames, comments, extracted device-specific code

Specifically,
top-level `Spi` is now `SpiBus`;
and the internal API has an additional `switchToDevice()`,
and receives `DeviceConfig` in more places.

* SPI device: Add `transceive()` method.

---------

Co-authored-by: Matt Knight <mattnite@protonmail.com>
2 years ago
Aidan Oldershaw 1c3e04baa1
Use `root.std_options` to override log behaviour (#99)
ziglang/zig#14181 changed the interface for overriding the log function.
Previously, you would define a public `root.log` function. Now, you
define a `root.std_options` namespace that has a `logFn` decl.

Signed-off-by: Aidan Oldershaw <aidan.oldershaw@gmail.com>
2 years ago
Felix Queißner db78794f01
Adds social media preview. (#98)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
2 years ago
Matt Knight 4f0d25220e
catchup to self hosted (#96) 2 years ago