lib.rs 771 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * Copyright (c) 2006-2024, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author notes
  8. * 2025-10-10 foxglove Basic library module template
  9. */
  10. #![no_std]
  11. /* Bring rt-rust's println! macro into scope */
  12. use rt_rust::println;
  13. use core::ffi::{c_char, CStr};
  14. #[unsafe(no_mangle)]
  15. pub extern "C" fn rust_mylib_println(s: *const c_char) {
  16. if s.is_null() {
  17. println!("");
  18. } else {
  19. let cs = unsafe {CStr::from_ptr(s)};
  20. match cs.to_str() {
  21. Ok(msg) => println!("{}", msg),
  22. Err(_) => println!("[invalid UTF-8]"),
  23. }
  24. }
  25. }
  26. #[unsafe(no_mangle)]
  27. pub extern "C" fn rust_mylib_add(a: usize, b: usize) -> usize {
  28. a + b
  29. }