ardix/README.md

64 lines
2 KiB
Markdown
Raw Normal View History

2020-06-07 16:49:03 +02:00
# The Ardix Kernel
This is the source tree of Ardix, a microkernel for various Arduino boards that implements some core
concepts of the Unix philosophy. Please note that this project is not affiliated with or endorsed
by Arduino s.r.l. in any way. Only ARM-based boards are supported at the moment.
2020-06-07 16:49:03 +02:00
## License
Copyright (c) 2020, 2021 Felix Kopp <owo@fef.moe>.
Ardix is non-violent software: you may only use, redistribute,
and/or modify it under the terms of the CNPLv6+ as found in
the LICENSE file in the source code root directory or at
<https://git.pixie.town/thufie/CNPL>.
Ardix comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law. See the CNPLv6+ for details.
2020-06-07 16:49:03 +02:00
## Compiling
### Prerequisites
- The GNU toolchain, including
* `arm-gcc`
* `arm-ld`
* `arm-objcopy`
2021-07-31 19:39:51 +02:00
- CMake >= 3.14
- A programmer (`bossac` recommended)
2020-06-07 16:49:03 +02:00
- A Unix-like shell (sorry Microsoft lackeys, you can use the Windows Subsystem for Linux for
compiling but probably not for flashing)
2020-06-07 16:49:03 +02:00
### Configuration
2021-07-31 19:39:51 +02:00
Configuration is done with the standard CMake config system.
The following options are available:
2020-06-07 16:49:03 +02:00
2021-07-31 19:39:51 +02:00
- `TOOLCHAIN_PATH`: Path where the compiler toolchain is located.
Defaults to `/usr/bin`.
- `ARCH`: Codename for the target architecture.
2020-06-07 16:49:03 +02:00
The following architectures are currently supported:
* `at91sam3x8e` (Arduino Due)
2020-06-07 16:49:03 +02:00
### Build
To build the EEPROM image, execute the following command:
2020-06-07 16:49:03 +02:00
```shell
# Replace <target> with one of the target architectures from the list above
2021-07-31 19:39:51 +02:00
cmake -DARCH=<arch> -B build -S .
cmake --build build
2020-06-07 16:49:03 +02:00
```
2021-07-31 19:39:51 +02:00
This will create `ardix.bin` in the `build` directory, which can be passed to `bossac` for flashing.
If you are using an Arduino DUE (at91sam3x8e), make sure to connect the USB cable to the programmer
port (the one closer to the power jack).
2020-06-07 16:49:03 +02:00
```shell
# Replace <tty> with the name of the tty device in /dev
# that is connected to your Arduino
2021-07-31 19:39:51 +02:00
bossac -e -w -v -b -a --port=<tty> build/ardix.bin
2020-06-07 16:49:03 +02:00
```
Please refer to `bossac --help` for more information on how to use it.