Skip to content
Snippets Groups Projects
Commit e0f00e1a authored by Blinningjr's avatar Blinningjr
Browse files

Corrected my answers in rtt_timing

parent 61d8332c
No related branches found
No related tags found
No related merge requests found
...@@ -55,12 +55,12 @@ fn timed_loop() -> (u32, u32) { ...@@ -55,12 +55,12 @@ fn timed_loop() -> (u32, u32) {
// > cargo run --example rtt_timing // > cargo run --example rtt_timing
// //
// [Your answer here] // [Your answer here]
// 2987 // 4790152 cycles
// //
// A.2) How many cycles per iteration? // A.2) How many cycles per iteration?
// //
// [Your answer here] // [Your answer here]
// 4790152 // 479.0152 cycles
// //
// A.3) Why do we need a wrapping subtraction? // A.3) Why do we need a wrapping subtraction?
// //
...@@ -75,17 +75,17 @@ fn timed_loop() -> (u32, u32) { ...@@ -75,17 +75,17 @@ fn timed_loop() -> (u32, u32) {
// start 30305915, end 30375916, diff 70001 // start 30305915, end 30375916, diff 70001
// //
// [Your answer here] // [Your answer here]
// 30305915 // 70001 cycles
// //
// B.2) How many cycles per iteration? // B.2) How many cycles per iteration?
// //
// [Your answer here] // [Your answer here]
// 70001 // 7.0001 cycles
// //
// What is the speedup (A/B)? // What is the speedup (A/B)?
// //
// [Your answer here] // [Your answer here]
// 4790152 / 70001 = 68.4297652891 // 479.0152 / 7.0001 = 68.4297652891
// //
// //
// Why do you think it differs that much? // Why do you think it differs that much?
...@@ -124,17 +124,17 @@ fn timed_loop() -> (u32, u32) { ...@@ -124,17 +124,17 @@ fn timed_loop() -> (u32, u32) {
// start 1356808538, end 1356848539, diff 40001 // start 1356808538, end 1356848539, diff 40001
// //
// [Your answer here] // [Your answer here]
// 1356808538 // 40001 cycles
// //
// C.2) How many cycles per iteration? // C.2) How many cycles per iteration?
// //
// [Your answer here] // [Your answer here]
// 40001 // 4.0001 cycles
// //
// What is the speedup (A/C)? // What is the speedup (A/C)?
// //
// [Your answer here] // [Your answer here]
// 4790152 / 40001 = 119.75080623 // 479.0152 / 4.0001 = 119.75080623
// //
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
// D) Now lets have a closer look at the generated assembly. // D) Now lets have a closer look at the generated assembly.
...@@ -223,7 +223,7 @@ fn timed_loop() -> (u32, u32) { ...@@ -223,7 +223,7 @@ fn timed_loop() -> (u32, u32) {
// https://developer.arm.com/documentation/ddi0439/b/Data-Watchpoint-and-Trace-Unit/DWT-Programmers-Model // https://developer.arm.com/documentation/ddi0439/b/Data-Watchpoint-and-Trace-Unit/DWT-Programmers-Model
// //
// [Your answer here] // [Your answer here]
// No, there is no function call. The two following line loads in the loaction of the cycle count, // No, there is no function call. The two following line loads in the location of the cycle count,
// which is always updated. Thus r1 holds the location of the cycle counter. // which is always updated. Thus r1 holds the location of the cycle counter.
// 0x08000232 <+0>: movw r1, #4100 ; 0x1004 // 0x08000232 <+0>: movw r1, #4100 ; 0x1004
// 0x0800023a <+8>: movt r1, #57344 ; 0xe000 // 0x0800023a <+8>: movt r1, #57344 ; 0xe000
...@@ -300,7 +300,7 @@ fn timed_loop() -> (u32, u32) { ...@@ -300,7 +300,7 @@ fn timed_loop() -> (u32, u32) {
// By how much does the cycle counter increase for each iteration? // By how much does the cycle counter increase for each iteration?
// //
// [Your answer here] // [Your answer here]
// 4 // 4 cycles
// //
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
// F) Reseting the cycle counter // F) Reseting the cycle counter
...@@ -337,7 +337,7 @@ fn timed_loop() -> (u32, u32) { ...@@ -337,7 +337,7 @@ fn timed_loop() -> (u32, u32) {
// (when hitting the `timed_loop` breakpoint)? // (when hitting the `timed_loop` breakpoint)?
// //
// [Your answer here] // [Your answer here]
// 0x00000009 // 0x00000009 = 9 cycles
// //
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
// G) Finally some statics // G) Finally some statics
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment