-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Feature: Runtime Configurable Target Support #577
Comments
^That answers some of my questions. Is there somewhere in documentation that explicitly states this info? |
Also, I'll be RTFMing this answer myself shortly, but how is greentea using daplink? |
@loverdeg-ep, there are ways to change a target-id during runtime, currently you can change your source/board/board.c file const char *board_id, assign it as you like, but this will change once #559 is merged and I am taking notes on what to add in the documentation #573. For drag-n-drop, as long as your flash algo supports it, then it should be fine. |
@loverdeg-ep @flit and @brianesquilona to comment further on this. |
We've discussed multiple times over the years about building support for multiple targets into a single DAPLink binary. We could do single per-vendor builds, as automatically identifying the target at runtime given a known vendor is relatively straightforward for most families. But determining vendor is an open problem. We do not want to implement something where the user has to select the target. The code needed major reworking to support this. The first step of supporting multiple families in one build has been implemented in #559. Next, we would need to support multiple targets and flash algos, plus the logic to identify the target. |
Talking without using brain; Can the flash algorithms be patched post build via MSD command. They are position independent correct? Might be dirty but could be a start. We will be developing custom targets more often than the average user, but we are having a heck of a time getting fully automated greentea tests to work for our NRF52840 based custom target.
It has been a not fun experience trying to do a custom_target "the right way". Will make new issue for the above rant upon request. |
@dlfryar please see comment above |
@loverdeg-ep there are a few options to work through this. I'll have to verify with boards in hand and get back to you.
|
@loverdeg-ep We clearly understand the issues you face for custom targets and are working to address them. Specifically about the flash algos, in order to support patching or replacement of the algo via MSD, the algo would have to be isolated into its own flash sector. So yes, it's definitely possible. But imo, it'd be better to just use pyOCD (or other host tool) to flash the target. Btw, we are getting an IBDAP so we can, among other things, create a DAPLink port. Should just be a custom IO config for the LPC11U35 HIC. |
Here's the post that explains how to use one of the NXP FRDM boards to debug another target. |
@flit If you can release a daplink binary that enables the Debug Out connector for the NRF52840-DK that would be a pretty quick workaround as well. If that is a possibility let me know and I'll make an issue that documents the required |
@dlfryar Per your recommendation to use FRDM boards. We'll be using gcc till an open source llvm/clang solution becomes viable. Under current circumstances we'll need one of the following to unblock us from having fully automated testing of our board.
|
@loverdeg-ep I'll get back to you on this. We are testing an option with DAPLINK using the debug out connector and retargeting the UART. Essentially you'd use an NRF52840_DK board connected to your MCU and use a USB TTL to get the UART output and pyOCD to do the flashing/resetting. |
@dlfryar Roger. Ready and waiting. With UART already re-targeted per our efforts with the j-link. |
I've been holding this one back for a while, can't beat around it anymore.
What is the feasibility of enabling daplink to change its 'target' target at runtime?
What would it take to make this happen?
And if I'm missing something and this is already sort of possible (maybe by cutting out drag/drop flashing) I'd love to get ahold of documentation.
@flit @cederom @BlackstoneEngineering
The text was updated successfully, but these errors were encountered: