Skip to content
Snippets Groups Projects
Commit c7359b3b authored by Samuel Karlsson's avatar Samuel Karlsson
Browse files

bare1

parent 32f36277
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ fn main() {
// to prevent returning
loop {
cortex_m::asm::nop();
// cortex_m::asm::bkpt();
cortex_m::asm::bkpt();
}
}
......@@ -53,6 +53,14 @@ fn main() {
// (if you are NOT under eclipse, then give the command in gdb console
// (gdb) disassemble
// ** your answer here **
// 0x08000450 <+80>: ldr r0, [sp, #4]
// 0x08000452 <+82>: bl 0x8002326 <cortex_m::peripheral::SCB::enable_fpu>
// 0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
// 0x08000458 <+88>: bl 0x8001716 <cortex_m_rt::reset_handler::main>
// 0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
// 0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
// 0x08000460 <+96>: wfi
// 0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
//
// commit your answers (bare1_2)
//
......@@ -61,13 +69,32 @@ fn main() {
// what is shown in the Dissasmbly view, what instruction is executing
// ** your answer here **
//
// commit your answers (bare1_3)
// 0x08000450 <+80>: ldr r0, [sp, #4]
// 0x08000452 <+82>: bl 0x800232a <cortex_m::peripheral::SCB::enable_fpu>
// 0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
// 0x08000458 <+88>: bl 0x800171a <cortex_m_rt::reset_handler::main>
// 0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
// 0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
// 0x08000460 <+96>: wfi
// 0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
//
//
//commit your answers (bare1_3)
//
// 4. now remeve the comment line 31
// what is shown in the Dissasmbly view, what instruction is executing
// ** your answer here **
//
// commit your answers (bare1_4)
// 0x08000450 <+80>: ldr r0, [sp, #4]
// 0x08000452 <+82>: bl 0x800232a <cortex_m::peripheral::SCB::set_fpu_access_mode+138>
// 0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
// 0x08000458 <+88>: bl 0x800171a <rust_begin_unwind+112>
// 0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
// 0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
// 0x08000460 <+96>: wfi
// 0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
//
//commit your answers (bare1_4)
//
// 5. release mode (optimized builds)
// rebuild bare1 in release (optimized mode)
......@@ -82,6 +109,24 @@ fn main() {
// c
// (to continue executing)
// ** your answer here **
// 0x08000450 <+80>: ldr r0, [sp, #4]
// 0x08000452 <+82>: bl 0x800232a <.Lref.Y+86>
// 0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
// 0x08000458 <+88>: bl 0x800171a <<char as core::fmt::Debug>::fmt+298>
// 0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
// 0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
// 0x08000460 <+96>: wfi
// 0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
// 0x08000464 <+100>: push {r4, r6, r7, lr}
// 0x08000466 <+102>: add r7, sp, #8
// 0x08000468 <+104>: sub sp, #48 ; 0x30
// 0x0800046a <+106>: mov r3, r2
// 0x0800046c <+108>: mov r12, r1
// 0x0800046e <+110>: mov lr, r0
// 0x08000470 <+112>: str r0, [sp, #28]
// 0x08000472 <+114>: str r1, [sp, #32]
// 0x08000474 <+116>: str r2, [sp, #36] ; 0x24
//
//
// commit your answers (bare1_5)
......
gdb.txt 0 → 100644
Undefined command: "disassambli". Try "help".
Undefined command: "dissasmbly". Try "help".
Dump of assembler code for function cortex_m_semihosting::hio::write_all:
0x080013f4 <+0>: push {r7, lr}
0x080013f6 <+2>: mov r7, sp
0x080013f8 <+4>: sub sp, #112 ; 0x70
0x080013fa <+6>: mov r3, r2
0x080013fc <+8>: mov r12, r1
0x080013fe <+10>: mov lr, r0
0x08001400 <+12>: str r0, [sp, #68] ; 0x44
0x08001402 <+14>: str r1, [sp, #72] ; 0x48
0x08001404 <+16>: str r2, [sp, #76] ; 0x4c
0x08001406 <+18>: str r3, [sp, #64] ; 0x40
0x08001408 <+20>: str.w r12, [sp, #60] ; 0x3c
0x0800140c <+24>: str.w lr, [sp, #56] ; 0x38
0x08001410 <+28>: b.n 0x8001412 <cortex_m_semihosting::hio::write_all+30>
0x08001412 <+30>: ldr r0, [sp, #72] ; 0x48
0x08001414 <+32>: ldr r1, [sp, #76] ; 0x4c
0x08001416 <+34>: bl 0x8001200 <core::slice::SliceExt::is_empty>
0x0800141a <+38>: str r0, [sp, #52] ; 0x34
0x0800141c <+40>: b.n 0x8001426 <cortex_m_semihosting::hio::write_all+50>
0x0800141e <+42>: movs r0, #0
0x08001420 <+44>: strb.w r0, [r7, #-29]
Quit
Detaching from program: /home/grammers/rtfm-app/target/thumbv7em-none-eabihf/debug/examples/bare1, Remote target
Ending remote debugging.
Undefined command: "dissasemble". Try "help".
Dump of assembler code for function cortex_m_rt::reset_handler:
=> 0x08000400 <+0>: push {r7, lr}
0x08000402 <+2>: mov r7, sp
0x08000404 <+4>: sub sp, #8
0x08000406 <+6>: movw r0, #0
0x0800040a <+10>: movt r0, #8192 ; 0x2000
0x0800040e <+14>: movw r1, #0
0x08000412 <+18>: movt r1, #8192 ; 0x2000
0x08000416 <+22>: bl 0x8001520 <r0::zero_bss>
0x0800041a <+26>: b.n 0x800041c <cortex_m_rt::reset_handler+28>
0x0800041c <+28>: movw r0, #0
0x08000420 <+32>: movt r0, #8192 ; 0x2000
0x08000424 <+36>: movw r1, #0
0x08000428 <+40>: movt r1, #8192 ; 0x2000
0x0800042c <+44>: movw r2, #19616 ; 0x4ca0
0x08000430 <+48>: movt r2, #2048 ; 0x800
0x08000434 <+52>: bl 0x800156a <r0::init_data>
0x08000438 <+56>: b.n 0x800043a <cortex_m_rt::reset_handler+58>
0x0800043a <+58>: movw r0, #15736 ; 0x3d78
0x0800043e <+62>: movt r0, #2048 ; 0x800
0x08000442 <+66>: ldr r0, [r0, #0]
0x08000444 <+68>: bl 0x80015d2 <<bare_metal::Peripheral<T>>::get>
0x08000448 <+72>: str r0, [sp, #0]
0x0800044a <+74>: b.n 0x800044c <cortex_m_rt::reset_handler+76>
0x0800044c <+76>: ldr r0, [sp, #0]
0x0800044e <+78>: str r0, [sp, #4]
0x08000450 <+80>: ldr r0, [sp, #4]
0x08000452 <+82>: bl 0x8002326 <cortex_m::peripheral::SCB::enable_fpu>
0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
0x08000458 <+88>: bl 0x8001716 <cortex_m_rt::reset_handler::main>
0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
0x08000460 <+96>: wfi
0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
End of assembler dump.
Undefined command: "disassemblie". Try "help".
Dump of assembler code for function cortex_m_rt::reset_handler:
=> 0x08000400 <+0>: push {r7, lr}
0x08000402 <+2>: mov r7, sp
0x08000404 <+4>: sub sp, #8
0x08000406 <+6>: movw r0, #0
0x0800040a <+10>: movt r0, #8192 ; 0x2000
0x0800040e <+14>: movw r1, #0
0x08000412 <+18>: movt r1, #8192 ; 0x2000
0x08000416 <+22>: bl 0x8001524 <r0::zero_bss>
0x0800041a <+26>: b.n 0x800041c <cortex_m_rt::reset_handler+28>
0x0800041c <+28>: movw r0, #0
0x08000420 <+32>: movt r0, #8192 ; 0x2000
0x08000424 <+36>: movw r1, #0
0x08000428 <+40>: movt r1, #8192 ; 0x2000
0x0800042c <+44>: movw r2, #19632 ; 0x4cb0
0x08000430 <+48>: movt r2, #2048 ; 0x800
0x08000434 <+52>: bl 0x800156e <r0::init_data>
0x08000438 <+56>: b.n 0x800043a <cortex_m_rt::reset_handler+58>
0x0800043a <+58>: movw r0, #15752 ; 0x3d88
0x0800043e <+62>: movt r0, #2048 ; 0x800
0x08000442 <+66>: ldr r0, [r0, #0]
0x08000444 <+68>: bl 0x80015d6 <<bare_metal::Peripheral<T>>::get>
0x08000448 <+72>: str r0, [sp, #0]
0x0800044a <+74>: b.n 0x800044c <cortex_m_rt::reset_handler+76>
0x0800044c <+76>: ldr r0, [sp, #0]
0x0800044e <+78>: str r0, [sp, #4]
0x08000450 <+80>: ldr r0, [sp, #4]
0x08000452 <+82>: bl 0x800232a <cortex_m::peripheral::SCB::enable_fpu>
0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
0x08000458 <+88>: bl 0x800171a <cortex_m_rt::reset_handler::main>
0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
0x08000460 <+96>: wfi
0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
End of assembler dump.
Detaching from program: /home/grammers/rtfm-app/target/thumbv7em-none-eabihf/debug/examples/bare1, Remote target
Ending remote debugging.
Dump of assembler code for function cortex_m_rt::reset_handler:
=> 0x08000400 <+0>: push {r7, lr}
0x08000402 <+2>: mov r7, sp
0x08000404 <+4>: sub sp, #8
0x08000406 <+6>: movw r0, #0
0x0800040a <+10>: movt r0, #8192 ; 0x2000
0x0800040e <+14>: movw r1, #0
0x08000412 <+18>: movt r1, #8192 ; 0x2000
0x08000416 <+22>: bl 0x8001524 <cortex_m_semihosting::hio::write_all+300>
0x0800041a <+26>: b.n 0x800041c <cortex_m_rt::reset_handler+28>
0x0800041c <+28>: movw r0, #0
0x08000420 <+32>: movt r0, #8192 ; 0x2000
0x08000424 <+36>: movw r1, #0
0x08000428 <+40>: movt r1, #8192 ; 0x2000
0x0800042c <+44>: movw r2, #19632 ; 0x4cb0
0x08000430 <+48>: movt r2, #2048 ; 0x800
0x08000434 <+52>: bl 0x800156e <r0::zero_bss+70>
0x08000438 <+56>: b.n 0x800043a <cortex_m_rt::reset_handler+58>
0x0800043a <+58>: movw r0, #15752 ; 0x3d88
0x0800043e <+62>: movt r0, #2048 ; 0x800
0x08000442 <+66>: ldr r0, [r0, #0]
0x08000444 <+68>: bl 0x80015d6 <r0::init_data+100>
0x08000448 <+72>: str r0, [sp, #0]
0x0800044a <+74>: b.n 0x800044c <cortex_m_rt::reset_handler+76>
0x0800044c <+76>: ldr r0, [sp, #0]
0x0800044e <+78>: str r0, [sp, #4]
0x08000450 <+80>: ldr r0, [sp, #4]
0x08000452 <+82>: bl 0x800232a <cortex_m::peripheral::SCB::set_fpu_access_mode+138>
0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
0x08000458 <+88>: bl 0x800171a <rust_begin_unwind+112>
0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
0x08000460 <+96>: wfi
0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
End of assembler dump.
Detaching from program: /home/grammers/rtfm-app/target/thumbv7em-none-eabihf/debug/examples/bare1, Remote target
Ending remote debugging.
Dump of assembler code for function cortex_m_rt::reset_handler:
=> 0x08000400 <+0>: push {r7, lr}
0x08000402 <+2>: mov r7, sp
0x08000404 <+4>: sub sp, #8
0x08000406 <+6>: movw r0, #0
0x0800040a <+10>: movt r0, #8192 ; 0x2000
0x0800040e <+14>: movw r1, #0
0x08000412 <+18>: movt r1, #8192 ; 0x2000
0x08000416 <+22>: bl 0x8001524 <core::fmt::Formatter::pad+758>
0x0800041a <+26>: b.n 0x800041c <cortex_m_rt::reset_handler+28>
0x0800041c <+28>: movw r0, #0
0x08000420 <+32>: movt r0, #8192 ; 0x2000
0x08000424 <+36>: movw r1, #0
0x08000428 <+40>: movt r1, #8192 ; 0x2000
0x0800042c <+44>: movw r2, #19632 ; 0x4cb0
0x08000430 <+48>: movt r2, #2048 ; 0x800
0x08000434 <+52>: bl 0x800156e <core::fmt::Formatter::pad+832>
0x08000438 <+56>: b.n 0x800043a <cortex_m_rt::reset_handler+58>
0x0800043a <+58>: movw r0, #15752 ; 0x3d88
0x0800043e <+62>: movt r0, #2048 ; 0x800
0x08000442 <+66>: ldr r0, [r0, #0]
0x08000444 <+68>: bl 0x80015d6 <core::fmt::Formatter::pad+936>
0x08000448 <+72>: str r0, [sp, #0]
0x0800044a <+74>: b.n 0x800044c <cortex_m_rt::reset_handler+76>
0x0800044c <+76>: ldr r0, [sp, #0]
0x0800044e <+78>: str r0, [sp, #4]
0x08000450 <+80>: ldr r0, [sp, #4]
0x08000452 <+82>: bl 0x800232a <.Lref.Y+86>
0x08000456 <+86>: b.n 0x8000458 <cortex_m_rt::reset_handler+88>
0x08000458 <+88>: bl 0x800171a <<char as core::fmt::Debug>::fmt+298>
0x0800045c <+92>: b.n 0x800045e <cortex_m_rt::reset_handler+94>
0x0800045e <+94>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
0x08000460 <+96>: wfi
0x08000462 <+98>: b.n 0x8000460 <cortex_m_rt::reset_handler+96>
0x08000464 <+100>: push {r4, r6, r7, lr}
0x08000466 <+102>: add r7, sp, #8
0x08000468 <+104>: sub sp, #48 ; 0x30
0x0800046a <+106>: mov r3, r2
0x0800046c <+108>: mov r12, r1
0x0800046e <+110>: mov lr, r0
0x08000470 <+112>: str r0, [sp, #28]
0x08000472 <+114>: str r1, [sp, #32]
0x08000474 <+116>: str r2, [sp, #36] ; 0x24
End of assembler dump.
Detaching from program: /home/grammers/rtfm-app/target/thumbv7em-none-eabihf/release/examples/bare1, Remote target
Ending remote debugging.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment