38 lines
821 B
Rust
38 lines
821 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
use core::panic::PanicInfo;
|
|
use cortex_ar::asm::nop;
|
|
use zynq7000_rt as _;
|
|
|
|
/// One user LED is MIO7
|
|
const ZEDBOARD_LED_MASK: u32 = 1 << 7;
|
|
|
|
/// Entry point (not called like a normal main function)
|
|
#[unsafe(no_mangle)]
|
|
pub extern "C" fn boot_core(cpu_id: u32) -> ! {
|
|
if cpu_id != 0 {
|
|
panic!("unexpected CPU ID {}", cpu_id);
|
|
}
|
|
main();
|
|
}
|
|
|
|
#[unsafe(export_name = "main")]
|
|
pub fn main() -> ! {
|
|
let mut gpio = unsafe { zynq7000::gpio::Gpio::new_mmio() };
|
|
gpio.modify_dirm_0(|v| v | ZEDBOARD_LED_MASK);
|
|
gpio.modify_out_en_0(|v| v | ZEDBOARD_LED_MASK);
|
|
loop {
|
|
gpio.modify_out_0(|v| v ^ ZEDBOARD_LED_MASK);
|
|
for _ in 0..1_000_000 {
|
|
nop();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// Panic handler
|
|
#[panic_handler]
|
|
fn panic(_info: &PanicInfo) -> ! {
|
|
loop {}
|
|
}
|