Compare commits
2 Commits
d5b7855c3b
...
bf8c7fda88
Author | SHA1 | Date |
---|---|---|
Astro | bf8c7fda88 | |
Astro | f94173788e |
|
@ -9,9 +9,9 @@ with pkgs;
|
|||
let
|
||||
rustcSrc = fetchgit {
|
||||
url = https://github.com/rust-lang/rust.git;
|
||||
# master of 2019-08-18
|
||||
rev = "ea52be482ab4945fda63cb65b6a198309a041e3c";
|
||||
sha256 = "1spifrkvyyrh1gazqrby29fjqsdbwvajv9k9f6mk2ldrdghlsd21";
|
||||
# master of 2019-08-31
|
||||
rev = "b3146549abf25818fecfc7555f35358a948e27ad";
|
||||
sha256 = "1db3g1iq6ba5pdasffay1bpywdibv83z5nwp2dzi0fxvz5bqx1gi";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
targets = [
|
||||
|
|
|
@ -43,13 +43,13 @@ macro_rules! def_gpio {
|
|||
type Error = ();
|
||||
fn set_low(&mut self) -> Result<(), Self::Error> {
|
||||
let gpio = unsafe { &*tm4c129x::$PORT::ptr() };
|
||||
let data = masked_data(unsafe { transmute(&gpio.data) }, $idx);
|
||||
let data = masked_data(unsafe { transmute(&gpio.data) }, (1 << $idx));
|
||||
*data = 0;
|
||||
Ok(())
|
||||
}
|
||||
fn set_high(&mut self) -> Result<(), Self::Error> {
|
||||
let gpio = unsafe { &*tm4c129x::$PORT::ptr() };
|
||||
let data = masked_data(unsafe { transmute(&gpio.data) }, $idx);
|
||||
let data = masked_data(unsafe { transmute(&gpio.data) }, (1 << $idx));
|
||||
*data = 1 << $idx;
|
||||
Ok(())
|
||||
}
|
||||
|
@ -68,6 +68,6 @@ def_gpio!(GPIO_PORTE_AHB, PE5, 5);
|
|||
|
||||
/// Setting of GPIO pins is optimized by address masking
|
||||
fn masked_data<'a>(data: *mut u32, bits: u8) -> &'a mut u32 {
|
||||
let data = unsafe { from_raw_parts_mut(data, 0x100) };
|
||||
let data = unsafe { from_raw_parts_mut(data, 0x400) };
|
||||
&mut data[usize::from(bits)]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue