• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# armv4t
2
3An incredibly simple emulator to run elf binaries compiled with `arm-none-eabi-cc -march=armv4t`. Uses a dual-core architecture to show off `gdbstub`'s multi-process support. It's not modeled after any real-world system.
4
5**Note:** The actual emulator's code is pretty sloppy, since it's just a contrived example to show off what `gdbstub` is capable of.
6
7Run `gdb-arm-none-eabi` (or alternatively, `gdb-multiarch`) from the `test_bin` directory to automatically connect to the emulator + load debug symbols for the emulated binary.
8
9This example can be run using:
10
11```bash
12cargo run --example armv4t --features=std
13```
14
15**NOTE:** If debug symbols couldn't be loaded, try rebuilding `test.elf` locally (requires the `arm-none-eabi` toolchain to be installed), and recompiling the example.
16
17## Memory Map
18
19The entire 32-bit address space is accessible as RAM.
20
21Reading from the magic memory location `0xffff_4200` returns `0xaa` if accessed by the CPU, and `0x55` if accessed by the COP.
22
23## Unix Domain Sockets
24
25GDB versions since \~2018 support running a debugging session over Unix Domain Sockets (UDS). Debugging over UDS can feel much snappier than debugging over loopback TCP.
26
27Running the example with the `--uds` flag will bind the GdbStub to a socket at `/tmp/armv4t_gdb`.
28
29This feature is only supported on Unix-like systems.
30