diff options
Diffstat (limited to 'xtask/src/argument_parsing.rs')
| -rw-r--r-- | xtask/src/argument_parsing.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/xtask/src/argument_parsing.rs b/xtask/src/argument_parsing.rs index 8707ec5..f50e285 100644 --- a/xtask/src/argument_parsing.rs +++ b/xtask/src/argument_parsing.rs @@ -167,8 +167,10 @@ pub enum Backends { Thumbv8Base, Thumbv8Main, RiscvEsp32C3, - Riscv32ImcClint, // not working yet (issues with portable-atomic features...) + Riscv32ImcClint, + Riscv32ImcMecall, Riscv32ImacClint, + Riscv32ImacMecall, } impl Backends { @@ -179,8 +181,10 @@ impl Backends { Backends::Thumbv7 => ARMV7M, Backends::Thumbv8Base => ARMV8MBASE, Backends::Thumbv8Main => ARMV8MMAIN, - Backends::Riscv32ImcClint | Backends::RiscvEsp32C3 => RISCV32IMC, - Backends::Riscv32ImacClint => RISCV32IMAC, + Backends::Riscv32ImcClint | Backends::Riscv32ImcMecall | Backends::RiscvEsp32C3 => { + RISCV32IMC + } + Backends::Riscv32ImacClint | Backends::Riscv32ImacMecall => RISCV32IMAC, } } @@ -193,6 +197,7 @@ impl Backends { Backends::Thumbv8Main => "thumbv8main-backend", Backends::RiscvEsp32C3 => "riscv-esp32c3-backend", Backends::Riscv32ImcClint | Backends::Riscv32ImacClint => "riscv-clint-backend", + Backends::Riscv32ImcMecall | Backends::Riscv32ImacMecall => "riscv-mecall-backend", } } #[allow(clippy::wrong_self_convention)] @@ -202,6 +207,7 @@ impl Backends { Backends::Thumbv7 | Backends::Thumbv8Main => "cortex-m-basepri", Backends::RiscvEsp32C3 => "riscv-esp32c3", Backends::Riscv32ImcClint | Backends::Riscv32ImacClint => "riscv-clint", + Backends::Riscv32ImcMecall | Backends::Riscv32ImacMecall => "riscv-mecall", } } } @@ -246,7 +252,12 @@ impl Platforms { let c = "-C".to_string(); match self { Platforms::Esp32C3 => vec![c, "link-arg=-Tlinkall.x".to_string()], - Platforms::Hifive1 => vec![c, "link-arg=-Thifive1-link.x".to_string()], + Platforms::Hifive1 => vec![ + c.clone(), + "link-arg=-Thifive1-link.x".to_string(), + c, + "portable_atomic_target_feature=\"zaamo\"".to_string(), + ], Platforms::Lm3s6965 => vec![c, "link-arg=-Tlink.x".to_string()], Platforms::Nrf52840 => vec