summaryrefslogtreecommitdiffstats
path: root/src/main.rs
blob: 3781a121adefbdc2232e2a18755f85c3623acef9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#![no_main]
#![no_std]

use core::{fmt::Write, ffi::c_int};
use cortex_m_rt::entry;
use microbit::{
    hal::uart::{Uart, Baudrate, Parity},
    Board,
};

extern crate panic_halt;
extern crate microbit;
extern "C" {
     fn c_add_one(x: c_int) -> c_int;
}

pub fn add_one(x: i32) -> i32 {
    unsafe {
	c_add_one(x)
    }
}

#[entry]
fn main() -> ! {
    let board = Board::take().unwrap();
    let mut serial = Uart::new(
	board.UART0,
	board.uart.into(),
	Parity::EXCLUDED,
	Baudrate::BAUD115200,
    );

    let ten_plus_one = add_one(10);
    writeln!(serial, "10 + 1 = {}\r", ten_plus_one).unwrap();

    loop {}
}