Move linker scripts to sub-folders

This commit is contained in:
bjoernQ 2022-02-18 12:00:05 +01:00
parent 826d485fe1
commit 7b59c9e76d
33 changed files with 62 additions and 34 deletions

View File

@ -48,7 +48,8 @@ pub enum InterruptKind {
}
/// Enumeration of available CPU interrupts.
/// It is possible to create a handler for each of the interrupts. (e.g. `interrupt3`)
/// It is possible to create a handler for each of the interrupts. (e.g.
/// `interrupt3`)
pub enum CpuInterrupt {
Interrupt1 = 1,
Interrupt2,

View File

@ -1,6 +1,5 @@
use darling::FromMeta;
use proc_macro::TokenStream;
use proc_macro::{self, Span};
use proc_macro::{self, Span, TokenStream};
use proc_macro_error::{abort, proc_macro_error};
use quote::quote;
use syn::{parse_macro_input, AttributeArgs};

View File

@ -1,10 +1,10 @@
[target.xtensa-esp32-none-elf]
runner = "xtensa-esp32-elf-gdb -q -x xtensa.gdb"
runner = "espflash --monitor"
[build]
rustflags = [
"-C", "link-arg=-nostartfiles",
"-C", "link-arg=-Wl,-Tlink.x",
"-C", "link-arg=-Wl,-Tlinkall.x",
]
target = "xtensa-esp32-none-elf"

View File

@ -5,20 +5,23 @@ fn main() {
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
File::create(out.join("memory.x"))
.unwrap()
.write_all(include_bytes!("memory.x"))
.write_all(include_bytes!("ld/memory.x"))
.unwrap();
File::create(out.join("alias.x"))
.unwrap()
.write_all(include_bytes!("rom.x"))
.write_all(include_bytes!("ld/rom.x"))
.unwrap();
File::create(out.join("hal-defaults.x"))
.unwrap()
.write_all(include_bytes!("hal-defaults.x"))
.write_all(include_bytes!("ld/hal-defaults.x"))
.unwrap();
println!("cargo:rustc-link-arg=-Thal-defaults.x");
File::create(out.join("linkall.x"))
.unwrap()
.write_all(include_bytes!("ld/linkall.x"))
.unwrap();
println!("cargo:rustc-link-search={}", out.display());

2
esp32-hal/ld/linkall.x Normal file
View File

@ -0,0 +1,2 @@
INCLUDE "link.x"
INCLUDE "hal-defaults.x"

View File

@ -1,5 +1,7 @@
[target.riscv32imc-unknown-none-elf]
runner = "espflash --format direct-boot --monitor"
rustflags = [
"-C", "link-arg=-Tlinkall.x"
]
[build]

View File

@ -14,17 +14,22 @@ fn main() {
File::create(out.join("memory.x"))
.unwrap()
.write_all(include_bytes!("db-esp32c3-memory.x"))
.write_all(include_bytes!("ld/db-esp32c3-memory.x"))
.unwrap();
File::create(out.join("esp32c3-link.x"))
.unwrap()
.write_all(include_bytes!("db-esp32c3-link.x"))
.write_all(include_bytes!("ld/db-esp32c3-link.x"))
.unwrap();
File::create(out.join("riscv-link.x"))
.unwrap()
.write_all(include_bytes!("db-riscv-link.x"))
.write_all(include_bytes!("ld/db-riscv-link.x"))
.unwrap();
File::create(out.join("linkall.x"))
.unwrap()
.write_all(include_bytes!("ld/db-linkall.x"))
.unwrap();
println!("cargo:rustc-link-search={}", out.display());
@ -32,7 +37,6 @@ fn main() {
// Only re-run the build script when memory.x is changed,
// instead of when any part of the source code changes.
println!("cargo:rerun-if-changed=memory.x");
println!("cargo:rustc-link-arg=-Tesp32c3-link.x");
add_defaults();
prepare_trap();
@ -44,12 +48,17 @@ fn main() {
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
File::create(out.join("memory.x"))
.unwrap()
.write_all(include_bytes!("bl-esp32c3-memory.x"))
.write_all(include_bytes!("ld/bl-esp32c3-memory.x"))
.unwrap();
File::create(out.join("bl-riscv-link.x"))
.unwrap()
.write_all(include_bytes!("bl-riscv-link.x"))
.write_all(include_bytes!("ld/bl-riscv-link.x"))
.unwrap();
File::create(out.join("linkall.x"))
.unwrap()
.write_all(include_bytes!("ld/bl-linkall.x"))
.unwrap();
println!("cargo:rustc-link-search={}", out.display());
@ -57,8 +66,6 @@ fn main() {
// Only re-run the build script when memory.x is changed,
// instead of when any part of the source code changes.
println!("cargo:rerun-if-changed=memory.x");
println!("cargo:rustc-link-arg=-Tmemory.x");
println!("cargo:rustc-link-arg=-Tbl-riscv-link.x");
add_defaults();
prepare_trap();
@ -68,11 +75,10 @@ fn add_defaults() {
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
File::create(out.join("hal-defaults.x"))
.unwrap()
.write_all(include_bytes!("hal-defaults.x"))
.write_all(include_bytes!("ld/hal-defaults.x"))
.unwrap();
println!("cargo:rustc-link-search={}", out.display());
println!("cargo:rustc-link-arg=-Thal-defaults.x");
}
fn prepare_trap() {

View File

@ -29,4 +29,4 @@ fn main() -> ! {
writeln!(serial0, "Hello world!").unwrap();
block!(timer0.wait()).unwrap();
}
}
}

View File

@ -0,0 +1,3 @@
INCLUDE "memory.x"
INCLUDE "bl-riscv-link.x"
INCLUDE "hal-defaults.x"

View File

@ -0,0 +1,2 @@
INCLUDE "esp32c3-link.x"
INCLUDE "hal-defaults.x"

View File

@ -1,10 +1,10 @@
[target.xtensa-esp32s2-none-elf]
runner = "xtensa-esp32s2-elf-gdb -q -x xtensa.gdb"
runner = "espflash --monitor"
[build]
rustflags = [
"-C", "link-arg=-nostartfiles",
"-C", "link-arg=-Wl,-Tlink.x",
"-C", "link-arg=-Wl,-Tlinkall.x",
]
target = "xtensa-esp32s2-none-elf"

View File

@ -5,20 +5,23 @@ fn main() {
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
File::create(out.join("memory.x"))
.unwrap()
.write_all(include_bytes!("memory.x"))
.write_all(include_bytes!("ld/memory.x"))
.unwrap();
File::create(out.join("alias.x"))
.unwrap()
.write_all(include_bytes!("rom.x"))
.write_all(include_bytes!("ld/rom.x"))
.unwrap();
File::create(out.join("hal-defaults.x"))
.unwrap()
.write_all(include_bytes!("hal-defaults.x"))
.write_all(include_bytes!("ld/hal-defaults.x"))
.unwrap();
println!("cargo:rustc-link-arg=-Thal-defaults.x");
File::create(out.join("linkall.x"))
.unwrap()
.write_all(include_bytes!("ld/linkall.x"))
.unwrap();
println!("cargo:rustc-link-search={}", out.display());

2
esp32s2-hal/ld/linkall.x Normal file
View File

@ -0,0 +1,2 @@
INCLUDE "link.x"
INCLUDE "hal-defaults.x"

View File

@ -1,7 +1,7 @@
#![no_std]
pub use embedded_hal as ehal;
pub use esp_hal_common::{pac, prelude, Delay, Serial, Timer, ram};
pub use esp_hal_common::{pac, prelude, ram, Delay, Serial, Timer};
#[no_mangle]
extern "C" fn DefaultHandler(_level: u32, _interrupt: pac::Interrupt) {}

View File

@ -1,10 +1,10 @@
[target.xtensa-esp32s3-none-elf]
runner = "xtensa-esp32s3-elf-gdb -q -x xtensa.gdb"
runner = "espflash --monitor"
[build]
rustflags = [
"-C", "link-arg=-nostartfiles",
"-C", "link-arg=-Wl,-Tesp32s3.x",
"-C", "link-arg=-Wl,-Tlinkall.x",
]
target = "xtensa-esp32s3-none-elf"

View File

@ -5,25 +5,28 @@ fn main() {
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
File::create(out.join("memory.x"))
.unwrap()
.write_all(include_bytes!("memory.x"))
.write_all(include_bytes!("ld/memory.x"))
.unwrap();
File::create(out.join("alias.x"))
.unwrap()
.write_all(include_bytes!("rom.x"))
.write_all(include_bytes!("ld/rom.x"))
.unwrap();
File::create(out.join("hal-defaults.x"))
.unwrap()
.write_all(include_bytes!("hal-defaults.x"))
.write_all(include_bytes!("ld/hal-defaults.x"))
.unwrap();
File::create(out.join("esp32s3.x"))
.unwrap()
.write_all(include_bytes!("esp32s3.x"))
.write_all(include_bytes!("ld/esp32s3.x"))
.unwrap();
println!("cargo:rustc-link-arg=-Thal-defaults.x");
File::create(out.join("linkall.x"))
.unwrap()
.write_all(include_bytes!("ld/linkall.x"))
.unwrap();
println!("cargo:rustc-link-search={}", out.display());

2
esp32s3-hal/ld/linkall.x Normal file
View File

@ -0,0 +1,2 @@
INCLUDE "esp32s3.x"
INCLUDE "hal-defaults.x"