Embedded development could be hell without a good tooling!
emhell
is a SVD (System View Description) register browser
-
:set
- Set register field (for example:set uart4.brr.div_mantissa = 0x123
).Since
emhell
has no backend, it simply renders the altered register.
hocd
is a register viewer utilizing OpenOCD as a backend
using hocd
-
:set
- Set register field (for example:set gpioa.odr.odr5 = 1
).Alters current register value with hexadecimal field value and writes new register value to memory.
-
:halt
- Halts target -
:reset
- Resets target -
:resume
- Resumes execution -
:step
- Single-steps target -
:version
- Print OpenOCD version
hgdb
is a register viewer and a GDB
frontend,
built on top hgdbmi
To use arm-none-eabi-gdb
with BlackMagicProbe
available via /dev/bmp
launch hgdb
in following manner
hgdb --arm --bmp /dev/bmp --svd stm32f407.svd
You can then inspect registers via REPL using their names (tab completion available) delimited by comma, e.g.
λ> scb.scr
Register SCR
- System Control Register
- Address 0xE000ED10 (including offset 0x10)
0000000004
0x00000004
0b00000000000000000000000000000100
0b0000 0000 0000 0000 0000 0000 0000 0000 0100
Bit 2 SLEEPDEEP
+-------+---------+-+---------+-----------+-+
|◦[26:0]|SEVONPEND|◦|SLEEPDEEP|SLEEPONEXIT|◦|
+-------+---------+-+---------+-----------+-+
| 0 | 0 |0| 1 | 0 |0|
+-------+---------+-+---------+-----------+-+
-e | --ex
behaves likegdb --ex
--svd
specifies SVD file to load on start--file
can be used to load image to Gdb on start-a | --arm
to usearm-none-eabi-gdb
--bmp DEV
for use with BlackMagicProbe over UART--bmphosted HOST:PORT
for use with PC hosted BlackMagicProbe (blackmagic_stlinkv2
binary)--remotegdb HOST:PORT
for use with remotely running GDB server over TCP (could be OpenOCD provided one)
For full list refer to hgdb --help
:set
- Set register value (for example:set gpioa.odr.odr5 = 1
).:svd
- Load SVD file, can be used instead of--svd
arguments or to change current SVD file:file
- Load file to Gdb
All other REPL commands are forwarded to GDB as CLI input.
git clone https://github.com/DistRap/emhell
cabal build
nix-build
The interface is not final and will probably change. With more recent Gdb than
currently available on distributions we could also do completion for function names
and variables (requires -symbol-list-functions
and -symbol-list-variables
).