Adds sample rust program
This commit is contained in:
28
bench/programs_rust/fpga-lib/src/interface.rs
Normal file
28
bench/programs_rust/fpga-lib/src/interface.rs
Normal file
@@ -0,0 +1,28 @@
|
||||
pub struct Buttons {}
|
||||
|
||||
impl Buttons
|
||||
{
|
||||
pub unsafe fn get_button(button_id: u8) -> bool
|
||||
{
|
||||
unsafe { *LED_IP_ADDRESS >> (button_id) & 0b1 == 0b1 }
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Leds {}
|
||||
|
||||
impl Leds
|
||||
{
|
||||
pub unsafe fn set_led(led_id: u8, state: bool)
|
||||
{
|
||||
if state
|
||||
{
|
||||
unsafe { *LED_IP_ADDRESS |= (state as u32) << (led_id + 4) }
|
||||
}
|
||||
else
|
||||
{
|
||||
unsafe { *LED_IP_ADDRESS &= !((state as u32) << (led_id + 4)) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub const LED_IP_ADDRESS: *mut u32 = 0x30000000 as *mut u32;
|
||||
Reference in New Issue
Block a user