lib: fix `no_std` compiling

Add a conditional check to enable `no_std` if the target_os is "none".

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
Sean Cross 2020-09-27 11:49:02 +08:00
parent 9a96cbbf4f
commit 03bfd901f8
1 changed files with 5 additions and 4 deletions

View File

@ -1,4 +1,5 @@
use std::convert::TryInto;
#![cfg_attr(target_os = "none", no_std)]
use core::convert::TryInto;
pub struct Register {
/// Offset of this register within this CSR
offset: usize,
@ -78,7 +79,7 @@ pub struct CSR<T> {
impl<T> CSR<T>
where
T: std::convert::TryFrom<usize> + std::convert::TryInto<usize> + std::default::Default,
T: core::convert::TryFrom<usize> + core::convert::TryInto<usize> + core::default::Default,
{
pub fn new(base: *mut T) -> Self {
CSR { base }
@ -131,11 +132,11 @@ mod tests {
#[test]
fn compile_check() {
use super::*;
let mut audio = CSR::new(0x0000_0000 as *mut u32);
let mut audio = CSR::new(0x1000_0000 as *mut u32);
audio.r(pac::audio::RX_CTL_ENABLE);
audio.rw(pac::audio::RX_CTL_RESET, 1);
let mut uart = CSR::new(0x0001_0000 as *mut u8);
let mut uart = CSR::new(0x1001_0000 as *mut u8);
uart.ow(pac::uart::RXTX_RXTX, b'a');
assert_ne!(uart.r(pac::uart::TXFULL_TXFULL), 1);