diff options
-rw-r--r-- | cortex-m-rt/.gitignore | 1 | ||||
-rw-r--r-- | cortex-m-rt/Cargo.toml | 3 | ||||
-rw-r--r-- | cortex-m-rt/asm.s | 1 | ||||
-rwxr-xr-x | cortex-m-rt/assemble.sh | 17 | ||||
-rw-r--r-- | cortex-m-rt/bin/thumbv6m-none-eabi.a | bin | 0 -> 886 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv7em-none-eabi.a | bin | 0 -> 886 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv7em-none-eabihf.a | bin | 0 -> 886 bytes | |||
-rw-r--r-- | cortex-m-rt/bin/thumbv7m-none-eabi.a | bin | 0 -> 886 bytes | |||
-rw-r--r-- | cortex-m-rt/build.rs | 11 |
9 files changed, 26 insertions, 7 deletions
diff --git a/cortex-m-rt/.gitignore b/cortex-m-rt/.gitignore index 6dc3db1..9895bb1 100644 --- a/cortex-m-rt/.gitignore +++ b/cortex-m-rt/.gitignore @@ -1,3 +1,4 @@ **/*.rs.bk Cargo.lock +bin/*.o target/ diff --git a/cortex-m-rt/Cargo.toml b/cortex-m-rt/Cargo.toml index 988faa7..e831320 100644 --- a/cortex-m-rt/Cargo.toml +++ b/cortex-m-rt/Cargo.toml @@ -9,9 +9,6 @@ name = "cortex-m-rt" repository = "https://github.com/japaric/cortex-m-rt" version = "0.5.2" -[build-dependencies] -cc = "1.0.10" - [dependencies] r0 = "0.2.1" diff --git a/cortex-m-rt/asm.s b/cortex-m-rt/asm.s index 2937be8..c7133c0 100644 --- a/cortex-m-rt/asm.s +++ b/cortex-m-rt/asm.s @@ -1,3 +1,4 @@ + .section .text.HardFault .global HardFault .thumb_func HardFault: diff --git a/cortex-m-rt/assemble.sh b/cortex-m-rt/assemble.sh new file mode 100755 index 0000000..f2ee3fd --- /dev/null +++ b/cortex-m-rt/assemble.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +set -euxo pipefail + +# cflags taken from cc 1.0.22 + +arm-none-eabi-as -march=armv6s-m asm.s -o bin/cortex-m-rt.o +ar crs bin/thumbv6m-none-eabi.a bin/cortex-m-rt.o + +arm-none-eabi-as -march=armv7-m asm.s -o bin/cortex-m-rt.o +ar crs bin/thumbv7m-none-eabi.a bin/cortex-m-rt.o + +arm-none-eabi-as -march=armv7e-m asm.s -o bin/cortex-m-rt.o +ar crs bin/thumbv7em-none-eabi.a bin/cortex-m-rt.o +ar crs bin/thumbv7em-none-eabihf.a bin/cortex-m-rt.o + +rm bin/cortex-m-rt.o diff --git a/cortex-m-rt/bin/thumbv6m-none-eabi.a b/cortex-m-rt/bin/thumbv6m-none-eabi.a Binary files differnew file mode 100644 index 0000000..62ac317 --- /dev/null +++ b/cortex-m-rt/bin/thumbv6m-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv7em-none-eabi.a b/cortex-m-rt/bin/thumbv7em-none-eabi.a Binary files differnew file mode 100644 index 0000000..ef9042f --- /dev/null +++ b/cortex-m-rt/bin/thumbv7em-none-eabi.a diff --git a/cortex-m-rt/bin/thumbv7em-none-eabihf.a b/cortex-m-rt/bin/thumbv7em-none-eabihf.a Binary files differnew file mode 100644 index 0000000..ef9042f --- /dev/null +++ b/cortex-m-rt/bin/thumbv7em-none-eabihf.a diff --git a/cortex-m-rt/bin/thumbv7m-none-eabi.a b/cortex-m-rt/bin/thumbv7m-none-eabi.a Binary files differnew file mode 100644 index 0000000..b93dae7 --- /dev/null +++ b/cortex-m-rt/bin/thumbv7m-none-eabi.a diff --git a/cortex-m-rt/build.rs b/cortex-m-rt/build.rs index fc53d79..8166b1b 100644 --- a/cortex-m-rt/build.rs +++ b/cortex-m-rt/build.rs @@ -1,18 +1,21 @@ -extern crate cc; - use std::env; -use std::fs::File; +use std::fs::{self, File}; use std::io::Write; use std::path::PathBuf; fn main() { let target = env::var("TARGET").unwrap(); + let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); has_fpu(&target); let is_armv6m = is_armv6m(&target); if target.starts_with("thumbv") { - cc::Build::new().file("asm.s").compile("asm"); + fs::copy( + format!("bin/{}.a", target), + out_dir.join("libcortex-m-rt.a"), + ).unwrap(); + println!("cargo:rustc-link-lib=static=cortex-m-rt"); } // Put the linker script somewhere the linker can find it |