Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
rtfm-app
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Samuel Karlsson
rtfm-app
Commits
c7359b3b
Commit
c7359b3b
authored
7 years ago
by
Samuel Karlsson
Browse files
Options
Downloads
Patches
Plain Diff
bare1
parent
32f36277
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
examples/bare1.rs
+48
-3
48 additions, 3 deletions
examples/bare1.rs
gdb.txt
+183
-0
183 additions, 0 deletions
gdb.txt
with
231 additions
and
3 deletions
examples/bare1.rs
+
48
−
3
View file @
c7359b3b
...
...
@@ -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)
...
...
This diff is collapsed.
Click to expand it.
gdb.txt
0 → 100644
+
183
−
0
View file @
c7359b3b
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.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment