86 Commits (158ad9eefa0cd747ef78c4646ac3942b7a48c882)

Author SHA1 Message Date
Nicolas Goy 158ad9eefa Fix compilation with latest zig master (#102) 7 months ago
Matt Knight f489ac41d9 update libxml2 (#101) 7 months ago
Matt Knight d488b381d7 update build api (#99) 7 months ago
Matt Knight eb98a1d1ab handle additional %s case for register names in SVD (#97) 7 months ago
Matt Knight 7c75bc6297 don't generate system registers (#96)
* don't generate system registers

* handle missing cpu name
7 months ago
Matt Knight c48ca0e86b use new for loops over iterators (#95)
* use new for loops over iterators

* run github actions on every push
7 months ago
Matt Knight 137b50484a Snake case (#94)
* wip

* converted functions to snake case
7 months ago
Matt Knight fa73a4d164 new for loop syntax (#93) 7 months ago
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