diff options
Diffstat (limited to 'cortex-m-semihosting')
-rw-r--r-- | cortex-m-semihosting/CHANGELOG.md | 2 | ||||
-rw-r--r-- | cortex-m-semihosting/README.md | 2 | ||||
l--------- | cortex-m-semihosting/bin | 1 | ||||
-rw-r--r-- | cortex-m-semihosting/build.rs | 16 | ||||
-rw-r--r-- | cortex-m-semihosting/src/lib.rs | 18 |
5 files changed, 5 insertions, 34 deletions
diff --git a/cortex-m-semihosting/CHANGELOG.md b/cortex-m-semihosting/CHANGELOG.md index 0a942cf..38ee835 100644 --- a/cortex-m-semihosting/CHANGELOG.md +++ b/cortex-m-semihosting/CHANGELOG.md @@ -5,6 +5,8 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +- Always use inline-asm, requiring Rust 1.59. + ## [v0.4.1] - 2020-10-20 0.4.1 was yanked because the pre-built binaries contain conflicting symbols diff --git a/cortex-m-semihosting/README.md b/cortex-m-semihosting/README.md index bfbfb44..6036d4e 100644 --- a/cortex-m-semihosting/README.md +++ b/cortex-m-semihosting/README.md @@ -11,7 +11,7 @@ This project is developed and maintained by the [Cortex-M team][team]. # Minimum Supported Rust Version (MSRV) -This crate is guaranteed to compile on stable Rust 1.33.0 and up. It *might* +This crate is guaranteed to compile on stable Rust 1.59.0 and up. It *might* compile with older versions but that may change in any new patch release. ## License diff --git a/cortex-m-semihosting/bin b/cortex-m-semihosting/bin deleted file mode 120000 index 19f285a..0000000 --- a/cortex-m-semihosting/bin +++ /dev/null @@ -1 +0,0 @@ -../bin
\ No newline at end of file diff --git a/cortex-m-semihosting/build.rs b/cortex-m-semihosting/build.rs index 315035e..ed0d069 100644 --- a/cortex-m-semihosting/build.rs +++ b/cortex-m-semihosting/build.rs @@ -1,23 +1,9 @@ -use std::path::PathBuf; -use std::{env, fs}; +use std::env; fn main() { let target = env::var("TARGET").unwrap(); - let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); - let name = env::var("CARGO_PKG_NAME").unwrap(); if target.starts_with("thumbv") { - if env::var_os("CARGO_FEATURE_INLINE_ASM").is_none() { - fs::copy( - format!("bin/{}.a", target), - out_dir.join(format!("lib{}.a", name)), - ) - .unwrap(); - - println!("cargo:rustc-link-lib=static={}", name); - println!("cargo:rustc-link-search={}", out_dir.display()); - } - println!("cargo:rustc-cfg=thumb"); } } diff --git a/cortex-m-semihosting/src/lib.rs b/cortex-m-semihosting/src/lib.rs index 3bc23ea..4ff975d 100644 --- a/cortex-m-semihosting/src/lib.rs +++ b/cortex-m-semihosting/src/lib.rs @@ -151,14 +151,6 @@ //! //! # Optional features //! -//! ## `inline-asm` -//! -//! When this feature is enabled semihosting is implemented using inline assembly and -//! compiling this crate requires nightly. -//! -//! When this feature is disabled semihosting is implemented using FFI calls into an external -//! assembly file and compiling this crate works on stable and beta. -//! //! ## `jlink-quirks` //! //! When this feature is enabled, return values above `0xfffffff0` from semihosting operation @@ -191,11 +183,6 @@ pub mod export; pub mod hio; pub mod nr; -#[cfg(all(thumb, not(feature = "inline-asm")))] -extern "C" { - fn __sh_syscall(nr: usize, arg: usize) -> usize; -} - /// Performs a semihosting operation, takes a pointer to an argument block #[inline(always)] pub unsafe fn syscall<T>(nr: usize, arg: &T) -> usize { @@ -206,10 +193,7 @@ pub unsafe fn syscall<T>(nr: usize, arg: &T) -> usize { #[inline(always)] pub unsafe fn syscall1(_nr: usize, _arg: usize) -> usize { match () { - #[cfg(all(thumb, not(feature = "inline-asm"), not(feature = "no-semihosting")))] - () => __sh_syscall(_nr, _arg), - - #[cfg(all(thumb, feature = "inline-asm", not(feature = "no-semihosting")))] + #[cfg(all(thumb, not(feature = "no-semihosting")))] () => { let mut nr = _nr; core::arch::asm!( |