128 Commits (1b1e3e6b39e4d15d06952f0b248650d7d1c4fa6f)

Author SHA1 Message Date
Paul 4b38512d67 Update README.md (#92) 7 months ago
Matt Knight b81760cd24 getMode() now generated as get_mode() (#90) 7 months ago
Matt Knight 060b6fbd5a update json tree api (#89)
* update json tree api

* sneak in namespacing of types into peripherals, registers, etc

* fix cache api usage, later try cache invalidation
7 months ago
Matt Knight f174713fd3 catch up to zig modules (#88) 7 months ago
Jacob Peters 44201d5370 Add core registers for Cortex M0 and M0+ (#86)
* Refactored core register functions

Most of this was just renaming function calls

* More refactoring

* Added calls to the core register functions

* Return error on missing NvicPrioBits

* Added function to check the value of vendor _systick_config

This should work but it is a bit brittle.
If vendorSystickConfig isn't lowercase for false it will return true

* Add extra check for vendor_systick_config

* fix formatting
7 months ago
Matt Knight 8c47254c9c SVD: peripheral derivation (#84)
* SVD: peripheral derivation
7 months ago
Matt Knight f42d279890 Fix build api breaks and morale (#85)
* fix build api breaks

* fix ci

* zig parser api update
7 months ago
Eckhart Köppen 0838f5809a Add all interrupts for a peripheral (#81) 7 months ago
Matt Knight 3d6cf928b3 initial vector table support for arm (#80)
When parsing ATDF or SVD files, seed the interrupts with known exception handlers for different architectures.
7 months ago
Matt Knight eb24365786 regzon (#79)
regzon is the name for the json output for reg'z data model. This PR includes a number of tests for serialization and deserialization. The intention of this format is to provide an accessible format for tooling, and to provide a medium for schema patching. Rather than errata, patching can be utilized to improve codegen such as type deduplication.

This format is subject to change.
7 months ago
Matt Knight ec84f7eebf svd field array (#77) 7 months ago
Matt Knight 71a8e27e8e omit [%s] suffix for svd (#76) 7 months ago
Matt Knight 83b4ee2a3d packed structs can have an explicit backing integer (#75) 7 months ago
Matt Knight 43ee9c8af0 vector table generation for ATDF (#74) 7 months ago
Matt Knight efeba02119 enums in SVD are always children of peripherals (#71)
* enums in SVD are always children of peripherals

* make SVD enums anonymous for now
7 months ago
Matt Knight 66ac34e33b fix mmio array codegen (#72) 7 months ago
Matt Knight a34e4ef648 initial support for dimElementsGroup for SVD (#70) 7 months ago
Matt Knight 293f25e6c3 make distinct types for peripherals always (#69) 7 months ago
Matt Knight 9627d4196c Rearchitect Regz (#63) 7 months ago
Matt Knight 2b985fc898 Characterize (#60)
* rename ndjson, add new tool to characterize sets of xml files

* remove some debug logs

* add characterized register schemas
7 months ago
Matt Knight f204d7f42c A quick fix for ATDF codegen and register groups (#59)
* A quick fix for ATDF codegen and register groups

The current code was expecting register groups and peripherals to have a
1:1 ratio, however the register groups under `modules` are more like
templates which are used to instantiate peripherals. This does the
minimal amount of refactoring in order for this to work and unblock some
users.

* i386 -> x86 target name update
7 months ago
Matt Knight 7a0d75f105 upgrade dependencies (#57) 7 months ago
Ethan Frei 0d0e667c26 removing some used "unused" variables (#55) 7 months ago
Matt Knight dea71d5272 add comptime for uses of ++ (#53)
* add comptime for uses of ++

* ptrCast instead of bitCast

* don't build i386 windows for now
7 months ago
Matt Knight 43a88c16b3 fix ptrCast to intToPtr (#50) 7 months ago
Matt Knight c87a7422fc update clap, fix logs of optional types (#48)
* update clap, fix logs of optional types

* rename empty test
7 months ago
Matt Knight 242b9300b6 update build badge 7 months ago
Matt Knight ba94c404f8 migrate linux builds to build kite (#47)
* see if it works

* add badge

* try grouping and matrix

* poke

* fix typo

* clean up
7 months ago
Matt Knight f160633eb5 add buildkite pipeline file (#46) 7 months ago
Matt Knight befb9a2928 make InterruptVector public (#44) 7 months ago
Matt Knight 708f0a6af6 don't overwrite register set, simplify nvic register generation (#42) 7 months ago
Matt Knight 48f2c0b051 Nvic codegen (#41)
* add system registers for cortex m0 and m1, nvic register generation for the chip

* make warning log a debug log

* usize to u64

* register size is now max 2^16 - 1
7 months ago
Matt Hall c38ca6403e Update build.zig: rename path->source (#39)
See ziglang/zig#11557
7 months ago
Matt Knight 9af2e274f1 core registers for the m0plus (#26)
* core registers for the m0plus

* do proper optional handling
7 months ago
Matt Knight 6f4850dab7 fix mmio int generation (#25) 7 months ago
Matt Knight 780a75268f add reset value and reset mask register properties (#24)
* add reset value and reset mask register properties

* usize => u64
7 months ago
Matt Knight 3d0c1ece64 use unmanaged datastructures (#23) 7 months ago
Riccardo Binetti 8ba737656a Add support for dimensioned register fields (#20)
Signed-off-by: Riccardo Binetti <rbino@gmx.com>
7 months ago
Matt Knight e34f293fec Update README.md 7 months ago
Matt Knight edf25671b9 add parsing the access type for svd (#22) 7 months ago
Matt Knight 2eb508c318 Register properties size (#21)
* snapshot

* size from register properties now passes tests

* finish moving to named index types
7 months ago
Matt Knight 96bf099d2e Update README.md 7 months ago
Matt Knight 4f4c1e693e Update README.md
don't need --recursive to clone ;)
7 months ago
Matt Knight d10482c9bd Vendor (#19)
* vendor dependencies
7 months ago
Matt Knight 1c676cbcfb support windows builds (#14)
* support windows builds

* add gitattributes for line ending
7 months ago
Matt Knight e7539b24ae Add build wrapper for regz (#13)
* regz can now be used as a build step
7 months ago
Matt Knight d6d34e21b0 remove indenting, just let the ast parser format the code (#11) 7 months ago
Matt Knight 2de91f6ca5 Test framework (#8)
* add template for PRs

* add CI workflow

* add test step and some empty tests

* reduce targets in workflow, add example svd

* added first test

* added line

* don't crosscompile from windows for now
7 months ago
Matt Knight d6bdd69ab4 extern struct for vector table (#4) 7 months ago
Matt Knight ae94209b57 inline functions for MMIOs (#3) 7 months ago
Matt Knight 4b7c5c531b ATDF (#2)
* snapshotting so that I can work on this as I travel

* add atdf parsing

* update readme

* fix register generation edge case and skip fields named RESERVED
7 months ago
Gregory Anders b6821bf8c1 Update clap usage for most recent HEAD version 7 months ago
Matt Knight 1a1a281c01 description word wrapping and fixed unhandled interrupt function 7 months ago
Matt Knight fed1a8f3fd big initial commit, thanks kprotty for helping with MmioInt() 7 months ago
Matt Knight 39f633642d Initial commit 7 months ago
Felix Queißner 5742d0e4b3
Better readme (#173)
* Adds better docs to README.md
* Adds tar, gzip to bundle.py checked dependencies.
* Adds fancy rendering of .data/chip-families.svg in output for embedding.
7 months ago
Grazfather 4c44611f20
Fix requirements.txt and update README (#172) 7 months ago
Felix Queißner 196bbd8094
Fixes CI Badge in README.md (#164)
* Fixes CI Badge in README.md

* Removes additional fetching from git

* More work on the CI script

* Adds requirements.txt for tools, fixes CI script even more

---------

Co-authored-by: Felix "xq" Queißner <git@random-projects.net>
7 months ago
Tobias Kohlbau e9859fbab2
support bundling only specific boards (#166)
Support bundling only specified boards and skipping
the examples. This speedsup the process in case
the developer is only working on specific boards
at a time. By default every example and every board
are bundled.

Signed-off-by: Tobias Kohlbau <tobias@kohlbau.de>
7 months ago
Felix "xq" Queißner be113c7adc Updates README.md 7 months ago
Felix "xq" Queißner 7817cdd27e Implements continous deployment 7 months ago
Felix "xq" Queißner a4ac2d1858 Adds deployment+example test to CI 8 months ago
Felix "xq" Queißner 1643c30d7d Makes AVR example fit, but still crashes compiler 8 months ago
Felix "xq" Queißner 2878ae6e19 Makes microchip/atsam example and bsp work 8 months ago
Felix "xq" Queißner 2ef68047de Adds up navigation in dev server 8 months ago
Felix "xq" Queißner 71e60e3c44 Makes nxp/lpc and nordic/nrf5x examples, fixes bug in build.zig.zon generation 8 months ago
Felix "xq" Queißner 7a33e6fd55 Makes stm32 module build again. 8 months ago
Felix "xq" Queißner b26ccf6645 Adds new structure for output: split into /examples/ and /packages/ 8 months ago
Felix "xq" Queißner 4480b7c17a Fixes build script enough to make next-gen example build. 8 months ago
Felix "xq" Queißner 99e8d09cf0 Adds auto-discovery of BSPs. 8 months ago
Felix "xq" Queißner cadd5d1b0f Makes examples/next-gen kinda build with experimental setup. Packages are now correct and microzig-build can determine all available targets and BSPs. 8 months ago
Felix "xq" Queißner e5b00e1d93 More docs on the tooling, fixes bug in memory computation. 8 months ago
Felix "xq" Queißner c65088cca6 Further improves deployment information, makes package info really useful 9 months ago
Felix "xq" Queißner 8d9c165a1d Fixes CI 9 months ago
Felix "xq" Queißner 31f26f57d9 Refactors packaging process from bash to python 9 months ago
Felix "xq" Queißner 2f6a61e6ae Fixes GitHub CI 9 months ago
Felix "xq" Queißner 6eccd8fd95 Implements board-support info extraction that inspects (and validates) the build.zig file for BSPs 9 months ago
Felix "xq" Queißner 0c4e82e697 Adds nix flake, adds tooling for creating a deployment of microzig, vendors some code from ezpkg 9 months ago