1#![no_std]
4#![allow(clippy::inline_always)]
5
6#[cfg(all(feature = "minerva", feature = "vexriscv"))]
7compile_error!(r#"Only one of the "minerva" or "vexriscv" features can be selected"#);
8
9#[macro_use]
10mod macros;
11
12pub mod cpu;
13pub mod csr;
14pub mod register {
15 #[cfg(feature = "minerva")]
16 pub use crate::cpu::minerva::register::*;
17 #[cfg(feature = "vexriscv")]
18 pub use crate::cpu::vexriscv::register::*;
19}
20
21pub mod clock {
22 const SYSTEM_CLOCK_FREQUENCY: u32 = 60_000_000;
23
24 #[must_use]
25 pub const fn sysclk() -> u32 {
26 SYSTEM_CLOCK_FREQUENCY
27 }
28}
29
30#[deny(dead_code)]
31#[deny(improper_ctypes)]
32#[deny(missing_docs)]
33#[deny(no_mangle_generic_items)]
34#[deny(non_shorthand_field_patterns)]
35#[deny(overflowing_literals)]
36#[deny(path_statements)]
37#[deny(patterns_in_fns_without_body)]
38#[deny(unconditional_recursion)]
39#[deny(unused_allocation)]
40#[deny(unused_comparisons)]
41#[deny(unused_parens)]
42#[deny(while_true)]
43#[allow(non_camel_case_types)]
44#[allow(non_snake_case)]
45#[allow(clippy::must_use_candidate)]
46#[allow(clippy::semicolon_if_nothing_returned)]
47#[allow(clippy::needless_lifetimes)]
48mod generated;
49
50pub use generated::generic::*;
51pub use generated::*;