#![no_std] #[cfg(target_arch = "arm")] use flipper_f1_sys::hal::{huart1, HAL_UART_Transmit_IT}; #[no_mangle] pub extern "C" fn add(a: u32, b: u32) -> u32 { a + b } #[no_mangle] pub extern "C" fn rust_uart_write() { let string = "Rust test string\n"; let bytes = string.as_bytes(); #[cfg(target_arch = "arm")] unsafe { HAL_UART_Transmit_IT(&mut huart1, bytes.as_ptr() as *mut _, bytes.len() as u16); } #[cfg(not(target_arch = "arm"))] unsafe { extern "C" { fn write(handle: i32, ptr: *const u8, size: usize) -> isize; } write(1, bytes.as_ptr(), bytes.len()); } } mod aux { use core::panic::PanicInfo; #[panic_handler] fn panic(_info: &PanicInfo) -> ! { loop { continue; } } }