X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fbootloader%2Fmain.rs;h=815429ed1410645a15910edbc56eaac5a719bd11;hb=95486d1430d2c3f66a07c99771088a80afbb8735;hp=52a14738f62e0008d6ad4cc95b362432ab0f6170;hpb=ccd68b1fa31a5313189544b15a78a8295104c7f4;p=gps-watch.git diff --git a/src/bootloader/main.rs b/src/bootloader/main.rs index 52a1473..815429e 100644 --- a/src/bootloader/main.rs +++ b/src/bootloader/main.rs @@ -22,7 +22,7 @@ */ #![no_std] -#![crate_type="staticlib"] +#![no_main] #[link(name="libcommon.rlib")] extern crate common; @@ -44,7 +44,7 @@ extern { fn enable_interrupts(); fn disable_interrupts(); - fn jump_to_application(address: u32); + fn jump_to_application(address: u32) -> !; } #[cfg(bootloader_type = "intermediate")] @@ -65,6 +65,12 @@ unsafe fn application_missing() -> bool { first_app_word.read() == 0xffffffff } +#[cfg(bootloader_type = "intermediate")] +fn bootloader_requested() -> bool { + true +} + +#[cfg(bootloader_type = "final")] fn bootloader_requested() -> bool { let start_ticks = systick::now(); @@ -78,7 +84,7 @@ fn bootloader_requested() -> bool { } #[no_mangle] -pub unsafe extern fn main() { +pub unsafe extern "C" fn _start() -> ! { watchdog::disable(); clock::configure(); systick::init();