A Minimal kernel for the Arduino Due
Find a file
fef adce3f3ed7
arch/at91sam3x8e: update struct reg_sw_snapshot
With my discovery of how to actually use thumb2
instructions in assembly files, the layout of
register snapshot has changed because they are
now pushed in consecutive order.
2021-08-01 02:25:34 +02:00
.vscode build: migrate to CMake 2021-07-31 19:39:51 +02:00
arch arch/at91sam3x8e: update struct reg_sw_snapshot 2021-08-01 02:25:34 +02:00
include atom: reimplement in pure assembly 2021-08-01 00:11:13 +02:00
init build: migrate to CMake 2021-07-31 19:39:51 +02:00
kernel build: ensure all symbols are included 2021-07-31 22:07:38 +02:00
lib build: migrate to CMake 2021-07-31 19:39:51 +02:00
.editorconfig Add some compiler flag macros for convenience 2020-06-12 03:43:11 +02:00
.gitignore build: migrate to CMake 2021-07-31 19:39:51 +02:00
CMakeLists.txt build: ensure all symbols are included 2021-07-31 22:07:38 +02:00
LICENSE kiss capitalism goodbye for good 2021-05-10 16:19:38 +02:00
options.cmake build: migrate to CMake 2021-07-31 19:39:51 +02:00
README.md build: migrate to CMake 2021-07-31 19:39:51 +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.

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.

Compiling

Prerequisites

  • The GNU toolchain, including
    • arm-gcc
    • arm-ld
    • arm-objcopy
  • CMake >= 3.14
  • A programmer (bossac recommended)
  • A Unix-like shell (sorry Microsoft lackeys, you can use the Windows Subsystem for Linux for compiling but probably not for flashing)

Configuration

Configuration is done with the standard CMake config system. The following options are available:

  • TOOLCHAIN_PATH: Path where the compiler toolchain is located. Defaults to /usr/bin.
  • ARCH: Codename for the target architecture. The following architectures are currently supported:
    • at91sam3x8e (Arduino Due)

Build

To build the EEPROM image, execute the following command:

# Replace <target> with one of the target architectures from the list above
cmake -DARCH=<arch> -B build -S .
cmake --build build

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).

# Replace <tty> with the name of the tty device in /dev
# that is connected to your Arduino
bossac -e -w -v -b -a --port=<tty> build/ardix.bin

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