-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[tools] Refactor tooling and add JLink support #965
Conversation
8f8ea39
to
6967a62
Compare
Ok, this PR got a little out of hand. But I wanted to clean up |
When you write The J-Link (or compatible, cheaply available as H-Link/...) USB dongle works fine with OpenOCD and supports a very large number of devices, e.g. Atmel/Microchip SAM. |
Yes, I use modm_tools for work and added jlink support, and am now contributing this back upstream again. J-Link generally has support for newer devices earlier than OpenOCD, otherwise I very much prefer OpenOCD, since it's way more configurable and also more stable than the J-Link proprietary software, at least on macOS. I need to check if RTT performance is better as they claim, I vaguely remember that OpenOCD was only able to transfer single-digit kB/s range, because they drive everything from the USB Host, whereas J-Link should do it directly on the probe. |
a17dd60
to
ce1a01d
Compare
Ok, so I've refactored a little more and the Makefile and CMake generator are now calling modm_tools via the module syntax, ie. |
- Call modm_tools as a Python module in the Makefile and CMake build systems. - Simplify and refactor modm_tools code. - Simplify SCons wrapper code around modm_tools. - Split modm_tools/log.py into rtt.py and itm.py to separate argument parsers. - Separate gdbinit files for each debug probe for correct reset command. - Update and synchronize documentation.
Cleaned up
modm_tools
and the Scons wrappers for it a little, and added JLink support.For our purposes OpenOCD is still better and much more configurable, however, JLink tends to have more device coverage and adds new devices faster. It can also be faster for certain tasks like RTT and uploading.
env.SubstList()
to listify, aggregate and substitute environment variablesenv.AlwaysBuildAction
rtt.py
anditm.py
and clean up options.compare-sections
when using GDB in a UI modesys.path
hacks.