Rust userland library for Tock (WIP)
Tested with tock a3b36d5872315ff05ef5ad34ed9453b0789218ce.
This project is nascent and still under heavy development, but first steps:
-
Ensure you have rustup installed.
-
Clone the repository.
git clone https://github.com/tock/libtock-rs cd libtock-rs
-
Install
elf2tab
.cargo install -f elf2tab --version 0.3.0
-
Add dependencies for cross-compilation.
rustup target add thumbv7em-none-eabi
-
Use the
run_example
script to compile and run the example app you want to use:./run_example.sh blink
This should work if you are using the nRF52-DK platform. For other platforms, you will end up with a TAB file in
target/tab
that you can program onto your Tock board (e.g. withtockloader install target/tab/blink.tab
).
The easiest way to start using libtock-rs is adding an example to the examples folder. The boiler plate code you would write is
#![no_std]
extern crate tock;
fn main() {
// Your code
}
If you want to use heap based allocation you will have to add
#![feature(alloc)]
extern crate alloc;
to the preamble.
To run on the code on your board you can use
./run_example.sh <your app>
This script does the following steps for you:
- cross-compile your program
- create a TAB (tock application bundle)
- if you have a nRF52-DK board connected: flash this TAB to your board (using tockloader)
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.