You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
microzig/README.md

58 lines
2.5 KiB
Markdown

7 months ago
# ![MicroZig Logo](design/logo-text-auto.svg)
7 months ago
[![Chat](https://img.shields.io/discord/824493524413710336.svg?logo=discord)](link=https://discord.gg/ShUWykk38X)
[![Downloads](https://img.shields.io/badge/Zig_Package-Download-blue)](https://downloads.microzig.tech/)
[![Continuous Integration](https://github.com/ZigEmbeddedGroup/microzig-monorepo/actions/workflows/build.yml/badge.svg)](https://github.com/ZigEmbeddedGroup/microzig-monorepo/actions/workflows/build.yml)
7 months ago
> **NOTE:** This is in development; breaks in the API are bound to happen.
## What version of Zig to use
0.11.0
## Contributing
Please see the [project page](https://github.com/orgs/ZigEmbeddedGroup/projects/1/views/1), its used as a place to brainstorm and organize work in ZEG. There will be issues marked as good first issue or drafts for larger ideas that need scoping/breaking ground on.
## Introduction
This repo contains the infrastructure for getting started in an embedded Zig project; it "gets you to main()". Specifically, it offers:
* a single easy-to-use builder function that:
* generates your linker script
* sets up packages and startup code
* generalized interfaces for common devices, such as UART.
* device drivers for interacting with external hardware
* an uncomplicated method to define xref:interrupts[interrupts]
## Getting Started
Search for your chip family in [the examples](https://downloads.microzig.tech/examples/) and get the archive.
You can easily get started based on that.
## Design
For MicroZig internals please see the [Design Document](docs/design.adoc).
## Repository structure
- `build/` contains the build components of MicroZig.
- `core/` contains the shared components of MicroZig.
- `board-support/` contains all official board support package.
- `examples/` contains examples that can be used with the board support packages.
- `tools/` contains tooling to work *on* MicroZig itself, so deployment, testing, ...
7 months ago
- `design/` contains images and logos
## Versioning Scheme
MicroZig versions are tightly locked with Zig versions.
The general scheme is `${zig_version}-${commit}-${count}`, so the MicroZig versions will look really similar to
Zigs versions, but with our own commit abbreviations and counters.
As MicroZig sticks to tagged Zig releases, `${zig_version}` will show to which Zig version the MicroZig build is compatible.
Consider the version `0.11.0-abcdef-123` means that this MicroZig version has a commit starting with `abcdef`, which was the 123rd commit of the version that is compatible with Zig 0.11.0.