Skip to content

Commit 6e793b6

Browse files
committed
update riscv to 0.10 with new critical section
1 parent 49a6c6b commit 6e793b6

File tree

8 files changed

+75
-19
lines changed

8 files changed

+75
-19
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [Unreleased]
99

10+
### Changed
11+
- Update `riscv` dependency to version 0.10
12+
1013
## [v0.10.0] - 2022-09-04
1114

1215
### Added

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ rust-version = "1.59"
1111

1212
[dependencies]
1313
vcell = "0.1.3"
14-
riscv = "0.8.0"
14+
riscv = "0.10.1"
1515

1616
[features]
1717
rt = []

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ This project is developed and maintained by the [RISC-V team][team].
1515
This crate is guaranteed to compile on stable Rust 1.59.0 and up. It *might*
1616
compile with older versions but that may change in any new patch release.
1717

18+
## Requirements
19+
20+
Install [form](https://crates.io/crates/form) and [svd2rust](https://crates.io/crates/svd2rust) using cargo install
21+
1822
## License
1923

20-
Copyright 2018-2022 [RISC-V team][team]
24+
Copyright 2018-2023 [RISC-V team][team]
2125

2226
Permission to use, copy, modify, and/or distribute this software for any purpose
2327
with or without fee is hereby granted, provided that the above copyright notice

build.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1+
use std::env;
2+
use std::fs::File;
13
use std::io::Write;
24
use std::path::PathBuf;
3-
use std::{env, fs};
4-
55
fn main() {
6-
// Put the linker script somewhere the linker can find it
7-
let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
8-
println!("cargo:rustc-link-search={}", out_dir.display());
9-
10-
fs::File::create(out_dir.join("memory-fe310.x"))
11-
.unwrap()
12-
.write_all(include_bytes!("memory-fe310.x"))
13-
.unwrap();
14-
println!("cargo:rerun-if-changed=memory-fe310.x");
6+
if env::var_os("CARGO_FEATURE_RT").is_some() {
7+
let out = &PathBuf::from(env::var_os("OUT_DIR").unwrap());
8+
File::create(out.join("device.x"))
9+
.unwrap()
10+
.write_all(include_bytes!("device.x"))
11+
.unwrap();
12+
println!("cargo:rustc-link-search={}", out.display());
13+
println!("cargo:rerun-if-changed=device.x");
14+
}
15+
println!("cargo:rerun-if-changed=build.rs");
1516
}

device.x

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
PROVIDE(WATCHDOG = DefaultHandler);
2+
PROVIDE(RTC = DefaultHandler);
3+
PROVIDE(UART0 = DefaultHandler);
4+
PROVIDE(UART1 = DefaultHandler);
5+
PROVIDE(QSPI0 = DefaultHandler);
6+
PROVIDE(QSPI1 = DefaultHandler);
7+
PROVIDE(QSPI2 = DefaultHandler);
8+
PROVIDE(GPIO0 = DefaultHandler);
9+
PROVIDE(GPIO1 = DefaultHandler);
10+
PROVIDE(GPIO2 = DefaultHandler);
11+
PROVIDE(GPIO3 = DefaultHandler);
12+
PROVIDE(GPIO4 = DefaultHandler);
13+
PROVIDE(GPIO5 = DefaultHandler);
14+
PROVIDE(GPIO6 = DefaultHandler);
15+
PROVIDE(GPIO7 = DefaultHandler);
16+
PROVIDE(GPIO8 = DefaultHandler);
17+
PROVIDE(GPIO9 = DefaultHandler);
18+
PROVIDE(GPIO10 = DefaultHandler);
19+
PROVIDE(GPIO11 = DefaultHandler);
20+
PROVIDE(GPIO12 = DefaultHandler);
21+
PROVIDE(GPIO13 = DefaultHandler);
22+
PROVIDE(GPIO14 = DefaultHandler);
23+
PROVIDE(GPIO15 = DefaultHandler);
24+
PROVIDE(GPIO16 = DefaultHandler);
25+
PROVIDE(GPIO17 = DefaultHandler);
26+
PROVIDE(GPIO18 = DefaultHandler);
27+
PROVIDE(GPIO19 = DefaultHandler);
28+
PROVIDE(GPIO20 = DefaultHandler);
29+
PROVIDE(GPIO21 = DefaultHandler);
30+
PROVIDE(GPIO22 = DefaultHandler);
31+
PROVIDE(GPIO23 = DefaultHandler);
32+
PROVIDE(GPIO24 = DefaultHandler);
33+
PROVIDE(GPIO25 = DefaultHandler);
34+
PROVIDE(GPIO26 = DefaultHandler);
35+
PROVIDE(GPIO27 = DefaultHandler);
36+
PROVIDE(GPIO28 = DefaultHandler);
37+
PROVIDE(GPIO29 = DefaultHandler);
38+
PROVIDE(GPIO30 = DefaultHandler);
39+
PROVIDE(GPIO31 = DefaultHandler);
40+
PROVIDE(PWM0CMP0 = DefaultHandler);
41+
PROVIDE(PWM0CMP1 = DefaultHandler);
42+
PROVIDE(PWM0CMP2 = DefaultHandler);
43+
PROVIDE(PWM0CMP3 = DefaultHandler);
44+
PROVIDE(PWM1CMP0 = DefaultHandler);
45+
PROVIDE(PWM1CMP1 = DefaultHandler);
46+
PROVIDE(PWM1CMP2 = DefaultHandler);
47+
PROVIDE(PWM1CMP3 = DefaultHandler);
48+
PROVIDE(PWM2CMP0 = DefaultHandler);
49+
PROVIDE(PWM2CMP1 = DefaultHandler);
50+
PROVIDE(PWM2CMP2 = DefaultHandler);
51+
PROVIDE(PWM2CMP3 = DefaultHandler);
52+
PROVIDE(I2C0 = DefaultHandler);
53+

memory-fe310.x

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/interrupt.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,4 +206,4 @@ impl Interrupt {
206206
#[doc = r" }"]
207207
#[doc = r" }"]
208208
#[doc = r" ```"]
209-
macro_rules ! interrupt { ( $ NAME : ident , $ path : path , locals : { $ ( $ lvar : ident : $ lty : ty = $ lval : expr ; ) * } ) => { # [ allow ( non_snake_case ) ] mod $ NAME { pub struct Locals { $ ( pub $ lvar : $ lty , ) * } } # [ allow ( non_snake_case ) ] # [ no_mangle ] pub extern "C" fn $ NAME ( ) { let _ = $ crate :: interrupt :: Interrupt :: $ NAME ; static mut LOCALS : self :: $ NAME :: Locals = self :: $ NAME :: Locals { $ ( $ lvar : $ lval , ) * } ; let f : fn ( & mut self :: $ NAME :: Locals ) = $ path ; f ( unsafe { & mut LOCALS } ) ; } } ; ( $ NAME : ident , $ path : path ) => { # [ allow ( non_snake_case ) ] # [ no_mangle ] pub extern "C" fn $ NAME ( ) { let _ = $ crate :: interrupt :: Interrupt :: $ NAME ; let f : fn ( ) = $ path ; f ( ) ; } } }
209+
macro_rules ! interrupt { ($ NAME : ident , $ path : path , locals : { $ ($ lvar : ident : $ lty : ty = $ lval : expr ;) * }) => { # [allow (non_snake_case)] mod $ NAME { pub struct Locals { $ (pub $ lvar : $ lty ,) * } } # [allow (non_snake_case)] # [no_mangle] pub extern "C" fn $ NAME () { let _ = $ crate :: interrupt :: Interrupt :: $ NAME ; static mut LOCALS : self :: $ NAME :: Locals = self :: $ NAME :: Locals { $ ($ lvar : $ lval ,) * } ; let f : fn (& mut self :: $ NAME :: Locals) = $ path ; f (unsafe { & mut LOCALS }) ; } } ; ($ NAME : ident , $ path : path) => { # [allow (non_snake_case)] # [no_mangle] pub extern "C" fn $ NAME () { let _ = $ crate :: interrupt :: Interrupt :: $ NAME ; let f : fn () = $ path ; f () ; } } }

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#![doc = "Peripheral access API for FE310 microcontrollers (generated using svd2rust v0.19.0 ( ))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next]
22
svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.19.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
3-
#![deny(const_err)]
43
#![deny(dead_code)]
54
#![deny(improper_ctypes)]
65
#![deny(missing_docs)]

0 commit comments

Comments
 (0)