Skip to content

Commit

Permalink
Move linker scripts to sub-folders
Browse files Browse the repository at this point in the history
  • Loading branch information
bjoernQ committed Feb 18, 2022
1 parent 826d485 commit 7b59c9e
Show file tree
Hide file tree
Showing 33 changed files with 62 additions and 34 deletions.
3 changes: 2 additions & 1 deletion esp-hal-common/src/interrupt/riscv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
3 changes: 1 addition & 2 deletions esp-hal-procmacros/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand Down
4 changes: 2 additions & 2 deletions esp32-hal/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -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"

Expand Down
11 changes: 7 additions & 4 deletions esp32-hal/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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());

Expand Down
File renamed without changes.
2 changes: 2 additions & 0 deletions esp32-hal/ld/linkall.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INCLUDE "link.x"
INCLUDE "hal-defaults.x"
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions esp32c3-hal/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
[target.riscv32imc-unknown-none-elf]
runner = "espflash --format direct-boot --monitor"
rustflags = [
"-C", "link-arg=-Tlinkall.x"
]

[build]
Expand Down
26 changes: 16 additions & 10 deletions esp32c3-hal/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,29 @@ 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());

// 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();
Expand All @@ -44,21 +48,24 @@ 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());

// 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();
Expand All @@ -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() {
Expand Down
2 changes: 1 addition & 1 deletion esp32c3-hal/examples/hello_world.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ fn main() -> ! {
writeln!(serial0, "Hello world!").unwrap();
block!(timer0.wait()).unwrap();
}
}
}
File renamed without changes.
3 changes: 3 additions & 0 deletions esp32c3-hal/ld/bl-linkall.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
INCLUDE "memory.x"
INCLUDE "bl-riscv-link.x"
INCLUDE "hal-defaults.x"
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions esp32c3-hal/ld/db-linkall.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INCLUDE "esp32c3-link.x"
INCLUDE "hal-defaults.x"
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions esp32s2-hal/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -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"

Expand Down
11 changes: 7 additions & 4 deletions esp32s2-hal/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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());

Expand Down
File renamed without changes.
2 changes: 2 additions & 0 deletions esp32s2-hal/ld/linkall.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INCLUDE "link.x"
INCLUDE "hal-defaults.x"
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion esp32s2-hal/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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) {}
Expand Down
4 changes: 2 additions & 2 deletions esp32s3-hal/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -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"

Expand Down
13 changes: 8 additions & 5 deletions esp32s3-hal/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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());

Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions esp32s3-hal/ld/linkall.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
INCLUDE "esp32s3.x"
INCLUDE "hal-defaults.x"
File renamed without changes.
File renamed without changes.

0 comments on commit 7b59c9e

Please sign in to comment.