README.md 2.21 KB
Newer Older
Felix Kopp's avatar
Felix Kopp committed
1
2
3
4
# 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
5
6
by Arduino s.r.l. in any way.  Only ARM-based boards are supported at the moment (and probably ever
will be, because AVR MCUs just don't have enough horsepower).
Felix Kopp's avatar
Felix Kopp committed
7
8
9

## License

Felix Kopp's avatar
Felix Kopp committed
10
11
Copyright (c) 2020, 2021 Felix Kopp <owo@fef.moe>.

Felix Kopp's avatar
Felix Kopp committed
12
13
14
15
16
17
18
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.
Felix Kopp's avatar
Felix Kopp committed
19
20
21
22
23

## Compiling

### Prerequisites

24
25
26
27
- The GNU toolchain, including
    * `arm-gcc`
    * `arm-ld`
    * `arm-objcopy`
Felix Kopp's avatar
Felix Kopp committed
28
- CMake >= 3.14
29
- A programmer (`bossac` recommended)
Felix Kopp's avatar
Felix Kopp committed
30
- A Unix-like shell (sorry Microsoft lackeys, you can use the Windows Subsystem for Linux for
31
  compiling but probably not for flashing)
Felix Kopp's avatar
Felix Kopp committed
32
33
34

### Configuration

35
36
37
Configuration is done with the standard CMake config system.  See `options.cmake` for a full list
of available configuration variables.  In the simplest case, you will only need to specify the
target architecture (`ARCH`) to get a basic build.  The following architectures are supported:
Felix Kopp's avatar
Felix Kopp committed
38

39
- `at91sam3x8e` (Arduino Due)
Felix Kopp's avatar
Felix Kopp committed
40
41
42

### Build

43
44
To build the EEPROM image, execute the following command.
Pass any other configuration options you want to set to the first command or use `cmake-gui(1)`.
Felix Kopp's avatar
Felix Kopp committed
45
46
47

```shell
# Replace <target> with one of the target architectures from the list above
48
# This will default to at91sam3x8e (Arduino Due)
Felix Kopp's avatar
Felix Kopp committed
49
50
cmake -DARCH=<arch> -B build -S .
cmake --build build
Felix Kopp's avatar
Felix Kopp committed
51
52
```

Felix Kopp's avatar
Felix Kopp committed
53
This will create `ardix.bin` in the `build` directory, which can be passed to `bossac` for flashing.
54
55
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).
Felix Kopp's avatar
Felix Kopp committed
56
57

```shell
58
59
# Replace <tty> with the name of the tty device in /dev
# that is connected to your Arduino
Felix Kopp's avatar
Felix Kopp committed
60
bossac -e -w -v -b -a --port=<tty> build/ardix.bin
Felix Kopp's avatar
Felix Kopp committed
61
62
```

63
Please refer to `bossac --help` for more information on how to use it.