diff --git a/README.md b/README.md index 11c44f0..f239e6f 100644 --- a/README.md +++ b/README.md @@ -2,32 +2,34 @@ 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. +by Arduino s.r.l. in any way. Only ARM-based boards are supported at the moment. ## License -Ardix is distributed under the terms of the BSD 3-clause license. +Ardix is distributed under the terms of the BSD-3-Clause ("New" or "Revised") license. See the `LICENSE` file for details. ## Compiling ### Prerequisites -- The AVR tools, including - * `avr-gcc` - * `avr-ld` - * `avr-objcopy` +- The GNU toolchain, including + * `arm-gcc` + * `arm-ld` + * `arm-objcopy` - GNU `make` +- A programmer (`bossac` recommended) - A Unix-like shell (sorry Microsoft lackeys, you can use the Windows Subsystem for Linux for - compiling but not for flashing) + compiling but probably not for flashing) ### Configuration Right now, you have to manually define environment variables: -- `AVR_CC`: Full path to `avr-gcc`. If unset, we will search for it in your PATH. -- `AVR_LD`: Full path to `avr-ld`. If unset, we will search for it in your PATH. -- `AVR_OBJCOPY`: Full path to `avr-objcopy`. If unset, we will search for it in your PATH. +- `ARM_CC`: Full path to `arm-none-eabi-gcc`. If unset, we will search for it in your PATH. +- `ARM_LD`: Full path to `arm-none-eabi-ld`. If unset, we will search for it in your PATH. +- `ARM_OBJCOPY`: Full path to `arm-none-eabi-objcopy`. + If unset, we will search for it in your PATH. - `ARCH`: Codename for the target architecture. This is mandatory. The following architectures are currently supported: * `at91sam3x8e` (Arduino Due) @@ -36,17 +38,21 @@ Right now, you have to manually define environment variables: ### Build -To build the EEPROM, execute the following command: +To build the EEPROM image, execute the following command: ```shell # Replace with one of the target architectures from the list above -ARCH='' make ardix.hex +ARCH='' make ardix.bin ``` -This will create the `ardix.hex` file, which can be passed to `avrdude` for flashing: +This will create the `ardix.bin` file, 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). ```shell -avrdude -vvv -C '' -p '' -c '' -P '' -b '' -D -U flash:w:ardix.hex +# Replace with the name of the tty device in /dev +# that is connected to your Arduino +bossac -e -w -v -b -a --port= ardix.bin ``` -Please refer to `man avrdude` for more information on how to use it. +Please refer to `bossac --help` for more information on how to use it.