From 163eea59ddade104c183008dee9a6ee70b3ce698 Mon Sep 17 00:00:00 2001 From: grammers <samkar-4@student.ltu.se> Date: Wed, 14 Feb 2018 19:04:05 +0000 Subject: [PATCH] bare5: task 1 --- examples/.bare5.rs.swp | Bin 0 -> 20480 bytes examples/bare4.rs | 4 ++-- examples/bare5.rs | 24 +++++++++++++++++++++--- 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 examples/.bare5.rs.swp diff --git a/examples/.bare5.rs.swp b/examples/.bare5.rs.swp new file mode 100644 index 0000000000000000000000000000000000000000..5f9c56a8961c6eeb8293d8357fd0d60aae8d53b0 GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/examples/bare4.rs b/examples/bare4.rs index 13b684d..91f9b37 100644 --- a/examples/bare4.rs +++ b/examples/bare4.rs @@ -27,8 +27,8 @@ use address::*; #[inline(always)] fn read_u32(addr: u32) -> u32 { - //unsafe { core::ptr::read_volatile(addr as *const _) } - core::ptr::read_volatile(addr as *const _) + unsafe { core::ptr::read_volatile(addr as *const _) } + //core::ptr::read_volatile(addr as *const _) } #[inline(always)] diff --git a/examples/bare5.rs b/examples/bare5.rs index 8d5b122..eaf19e2 100644 --- a/examples/bare5.rs +++ b/examples/bare5.rs @@ -126,6 +126,7 @@ fn main() { idle(rcc, gpioa); } + // user application fn idle(rcc: &mut RCC, gpioa: &mut GPIOA) { let rcc_copy = &rcc; @@ -140,18 +141,35 @@ fn idle(rcc: &mut RCC, gpioa: &mut GPIOA) { // and alter the data output through the BSRR register // this is more efficient as the read register is not needed. + let gbh: u32 = 0x40000000 + 0x00020000+ 0x18; + loop { // set PA5 high - gpioa.BSRRH.write(1 << 5); // set bit, output hight (turn on led) + //gpioa.BSRRH.write(1 << 5); // set bit, output hight (turn on led) + write_u32(gbh, 1 << 5); wait(10_000); // set PA5 low - gpioa.BSRRL.write(1 << 5); // clear bit, output low (turn off led) + //gpioa.BSRRL.write(1 << 5); // clear bit, output low (turn off led) + //unsafe { ptr::write_volatile(self.value.get(), value) + write_u32(gbh, 1 << (5 + 16)); wait(10_000); + } + +} + +fn write_u32(addr: u32, val: u32) { + unsafe { + core::ptr::write_volatile(addr as *mut _, val); + } +} +fn read_u32(addr: u32) -> u32{ + unsafe { + core::ptr::read_volatile(addr as *const _) } } -// 1. C like API +//ike API // In C the .h files are used for defining interfaces, like function signatures (prototypes), // structs and macros (but usually not the functions themselves) // here is a peripheral abstraction quite similar to what you would find in the .h files -- GitLab