121 Commits (3f8dd68f0dab8119e7e40bf21858a3034d432efa)
 

Author SHA1 Message Date
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
Connor Rigby 680b6282f3
stdlib: allow app to override the zig os layer (#93) 2 years ago
Felix Queißner 31070c1530
Makes executable files never stripped, we want that sweet debug info. Makes empty.zig less empty, so the compiler finds the file. (#91)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
2 years ago
Felix Queißner 248388d6e8
Update README.adoc (#90) 2 years ago
Philipp Wendel 696c32ff0d
add arduino uno board (#89)
* Updated fn to return optional instead of error
* Added Arduino Uno Board
* Updated comments
2 years ago
hollmmax c5f68cae63
add stm3240g-eval board (#84) 2 years ago
Felix Queißner 0d9721d907
Adds microzig.initializeSystemMemories (#87)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
2 years ago
Felix Queißner 15bc1fc06d
Much improves the panic function, now prints a stack trace more often. (#86)
Co-authored-by: Felix "xq" Queißner <xq@random-projects.net>
2 years ago
Matt Knight 681b3b0d7a
added param to panic function (#83) 2 years ago
Matt Knight fa46be8ea2
Revert "Revert "Add executable method (addOptions, addObjectFile) and fix recursive call in addIncludePath (#79)" (#81)" (#82)
This reverts commit 4cc682cece.
2 years ago
David Sugar e280cca9b6
ATSAME51J20A chip (#78)
* Added some function wrappers to EmbeddedExecutable that expose commonly used functionalities of LibExeObjStep

* atsame51j20a chip added. GPIO support. UART support over SERCOM5.

* added support for true random numbers to atsame51j20a chip
2 years ago
Matt Knight 4cc682cece
Revert "Add executable method (addOptions, addObjectFile) and fix recursive call in addIncludePath (#79)" (#81)
This reverts commit bebf6cf92d.
2 years ago
Nicolas Goy bebf6cf92d
Add executable method (addOptions, addObjectFile) and fix recursive call in addIncludePath (#79) 2 years ago
Matt Knight 4159581b48
remove pointless discard (#80) 2 years ago
David Sugar 3617b8b25f
Added some function wrappers to EmbeddedExecutable that expose commonly used functionalities of LibExeObjStep (#77) 2 years ago
Vesim 20deb2cc3e
Allow to specify VectorTable in app and hal. (#76) 2 years ago
Matt Knight 68314b8f7e
use stage1 until stage3 is ready (#75) 2 years ago
Nicolas Goy e1244177fa
Add comment about microzig.config (#74)
* Add comment about microzig.config

When writing a HAL, having the chip name is very important to switch features and select pinout. Mention the config in the README in a concise manner.

Co-authored-by: Felix Queißner <felix@ib-queissner.de>
2 years ago
Nicolas Goy b8d92b2539
Make the microzig package public to allow it to be passed as dependency. (#73) 2 years ago
Matt Knight a2dd362ce7
Asciidoc (#71)
use asciidoc for the automatic toc
2 years ago
Matt Knight 0936dfb05c
improve build api (#70) 2 years ago