3 ms·
[deleted, thought it was possibly some pre-compiled code related to the trampoline but I don't think so] EDIT: I spoke too quickly, looking at the disassembly
by mmastrac 5y ago
[deleted, thought it was possibly some pre-compiled code related to the trampoline but I don't think so]
EDIT: I spoke too quickly, looking at the disassembly in the sibling comment.
EDIT 2: That disassembly looks like data, TBH.
- jagger27 5y agoWhat does trampoline mean in this context?
- mmastrac 5y agoUsually just a piece of code to jump to another piece of code with certain necessary register modifications, ie: https://gcc.gnu.org/onlinedocs/gccint/Trampolines.html https://gcc.gnu.org/onlinedocs/gccint/Trampolines.html
- diogenesjunior 5y agoif u go up it looks like there is a `debug_trampoline` function. so they are saying the `debug_trampoline_end` is a precompiled version of the `debug_trampoline` one. not sure if this is true or not
- TuxSH 5y agoIt is not. debug_trampoline_end is just a label in this context.
- bri3d 5y agoA trampoline in code is something you jump off of - essentially, a redirection snippet. You jump into it and it bounces you somewhere else. In this case, the use is documented where it's implemented: https://github.com/raspberrypi/pico-bootrom/blob/master/bootrom/bootrom_rt0.S#L425 https://github.com/raspberrypi/pico-bootrom/blob/master/boot... . It's a custom wrapper to call ROM functions. When the ROM function returns, the trampoline executes a debugger breakpoint. This is done so that the debugger can call into ROM easily without needing to set a hardware breakpoint.
- klyrs 5y agoA trampoline is a useful pattern in software https://en.m.wikipedia.org/wiki/Trampoline_(computing) https://en.m.wikipedia.org/wiki/Trampoline_(computing)