Ardix is ARM exclusive (at least for now)

This commit is contained in:
Felix Kopp 2020-06-12 00:36:13 +02:00
parent 2f3fe766f5
commit cb1b6c0848
No known key found for this signature in database
GPG key ID: C478BA0A85F75728

View file

@ -2,32 +2,34 @@
This is the source tree of Ardix, a microkernel for various Arduino boards that implements some core 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 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 ## 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. See the `LICENSE` file for details.
## Compiling ## Compiling
### Prerequisites ### Prerequisites
- The AVR tools, including - The GNU toolchain, including
* `avr-gcc` * `arm-gcc`
* `avr-ld` * `arm-ld`
* `avr-objcopy` * `arm-objcopy`
- GNU `make` - GNU `make`
- A programmer (`bossac` recommended)
- A Unix-like shell (sorry Microsoft lackeys, you can use the Windows Subsystem for Linux for - 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 ### Configuration
Right now, you have to manually define environment variables: 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. - `ARM_CC`: Full path to `arm-none-eabi-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. - `ARM_LD`: Full path to `arm-none-eabi-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_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. - `ARCH`: Codename for the target architecture. This is mandatory.
The following architectures are currently supported: The following architectures are currently supported:
* `at91sam3x8e` (Arduino Due) * `at91sam3x8e` (Arduino Due)
@ -36,17 +38,21 @@ Right now, you have to manually define environment variables:
### Build ### Build
To build the EEPROM, execute the following command: To build the EEPROM image, execute the following command:
```shell ```shell
# Replace <target> with one of the target architectures from the list above # Replace <target> with one of the target architectures from the list above
ARCH='<target>' make ardix.hex ARCH='<target>' 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 ```shell
avrdude -vvv -C '<config>' -p '<target>' -c '<programmer-id>' -P '<port>' -b '<baudrate>' -D -U flash:w:ardix.hex # 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> 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.