Skip to content
Snippets Groups Projects
Commit d87e6ea3 authored by Ruben Asplund's avatar Ruben Asplund
Browse files

Exercise F

parent fdf160ec
No related branches found
No related tags found
No related merge requests found
//! examples/rtt_timing.rs
#![deny(unsafe_code)]
//#![deny(unsafe_code)]
#![deny(warnings)]
#![no_main]
#![no_std]
use cortex_m::{asm, peripheral::DWT};
use panic_rtt_target as _;
use rtt_target::{rprintln, rtt_init_print};
use panic_halt as _;
//use panic_rtt_target as _;
//use rtt_target::{rprintln, rtt_init_print};
use stm32f4;
#[rtic::app(device = stm32f4)]
const APP: () = {
#[init]
fn init(mut cx: init::Context) {
rtt_init_print!();
rprintln!("init");
//rtt_init_print!();
//rprintln!("init");
// Initialize (enable) the monotonic timer (CYCCNT)
cx.core.DCB.enable_trace();
cx.core.DWT.enable_cycle_counter();
rprintln!("start timed_loop");
let (start, end) = timed_loop();
rprintln!(
"start {}, end {}, diff {}",
start,
end,
end.wrapping_sub(start)
);
//rprintln!("start timed_loop");
//unsafe {
// cx.core.DWT.cyccnt.write(0);
//}
let (_start, _end) = timed_loop();
// rprintln!(
// "start {}, end {}, diff {}",
// start,
// end,
// end.wrapping_sub(start)
// );
}
#[idle]
fn idle(_cx: idle::Context) -> ! {
rprintln!("idle");
// rprintln!("idle");
loop {
continue;
}
......@@ -299,7 +304,7 @@ fn timed_loop() -> (u32, u32) {
// What is the initial value of the cycle counter
// (when hitting the `timed_loop` breakpoint)?
//
// [Your answer here]
// [0x00000006]
//
// ------------------------------------------------------------------------
// F) Finally some statics
......@@ -340,6 +345,10 @@ fn timed_loop() -> (u32, u32) {
// > cargo size --example rtt_timing --release --features nightly
//
// [Your answer here]
// Compiling app v0.1.0 (/home/ruben/git/rtic_f4xx_nucleo)
// Finished release [optimized + debuginfo] target(s) in 0.44s
// text data bss dec hex filename
// 660 0 0 660 294 rtt_timing
//
// I was able to get down to:
// > cargo size --example rtt_timing --release --features nightly
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment