mod uart0;
use common::buffer::Buffer;
+use common::ringbuf::Ringbuf;
use common::clock;
use common::systick;
use common::port;
port::set_pull(port::PORTE, 31, port::Pull::Up);
}
+fn uart0_try_read() -> Option<u8> {
+ extern {
+ static mut uart0_rx_buf: Ringbuf;
+ }
+
+ unsafe {
+ if uart0_rx_buf.is_empty() {
+ None
+ } else {
+ Some(uart0_rx_buf.read())
+ }
+ }
+}
+
#[no_mangle]
pub unsafe extern "C" fn _start() -> ! {
clock::configure();
let mut show_time = false;
let old_gps_has_fix = gps_has_fix;
- while gps.update(&mut tap) {
+ while gps.update(&mut tap, uart0_try_read) {
prev_tap = tap;
show_time = true;