mirror of
https://github.com/ferrous-systems/embedded-trainings-2020.git
synced 2024-09-25 12:59:59 +00:00
30 lines
607 B
Rust
30 lines
607 B
Rust
#![no_main]
|
|
#![no_std]
|
|
|
|
use cortex_m::asm;
|
|
use cortex_m_rt::entry;
|
|
use panic_log as _; // panic handler
|
|
|
|
#[entry]
|
|
fn main() -> ! {
|
|
// board initialization
|
|
dk::init().unwrap();
|
|
|
|
log::info!("provoking stack overflow...");
|
|
spam();
|
|
|
|
loop {
|
|
asm::bkpt();
|
|
}
|
|
}
|
|
|
|
#[inline(never)]
|
|
fn spam() {
|
|
// allocate and initialize one kilobyte of stack memory to provoke stack overflow
|
|
let use_stack = [0xAA_u32; 1024];
|
|
|
|
log::info!("address of current `use_stack`: {:?}", &use_stack as *const u32);
|
|
|
|
log::info!("entering next recursive step");
|
|
spam(); // infinite recursion
|
|
}
|