Hi Curtis,
Don't worry, I can't devote enough time for this, either. :/
The memory dumps were easy. I have made them with the GUI alternative of the CLI tool nrfjprog. See the guide for
installing nRFGo Studio.
(
As I had known nothing about embedded programming and NordicSemi chips, first I wanted to "RTFM".This is how I have found the tool.
For the memmaps I had to hook the nRF52840 Express to the onboard (OB) Segger built into the nRF52840-DK board from NordicSemi.
I suppose you can use a standalone Segger, too.
- Just connect the Feather to the Segger,..
- ... then the Segger to the PC.
- Power up both...
- ...and launch nRFGo Studio.
- On the GUI select on Segger item identified by its serial number in the Device Manager pane. Wait for a few seconds until nRFGo Studio connects to the Segger, the Segger to the Feather and then it automatically shows the memory map:
Otherwise, I am quite hopeless now. I wanted to try modifying the bootloader myself. (My challenge is that I need to prioritize my wife's work on our home computer, while my employer has disabled USB Mass Storage Devices on my work laptop due to some stupid security considerations. This makes working with UF2 based bootloaders, such as the Adafruit one, a nightmare. Furthermore, I used to be a SW developer for a telecom signalling load application more than a decade ago, but then I had worked in generic POSIX environment using ClearCase. Since then, I only produced slideware. This "git" thingy and embedded programming has a very steep learning curve for me, so far.)
As a pipe cleaner first step I want to be able to recompile and upload the stock Adafruit bootloader with s140 SD, in order to understand the process and ensure that I have to troubleshoot only problems related to the s340 SD, not with my lack of knowledge. However, I have failed so far. I am trying to do this on various Win 10 machines. Maybe that is the problem... :/
- I could clone the bootloader from the official Adafruit GitHub repo, including tinyusb and nrfx sub-repos. The README sais that it comes with Segger Embedded Studio (SES) project file. (I have installed SES as part of my initial RTFM step.)
- So, I tried to compile with SES, but it failed due to files seemingly missing from the repo :/, such as Adafruit_nRF52_Bootloader\lib\tinyusb\src\portable\nordic\nrf5x\hal_nrf5x.c... :/
- Then I have had a long journey to get a working copy of the ARM-GCC toolchain on my machine. Very rough journey, I have failed to suceed with the Windows xPack variant, so I have ended up to use Ubuntu in Win10 WLS (Windows Linux Subsystem) . However, the net wisdom said that the Ubuntu ARM GCC packages are broken, so I have ended up installing it from tarball in my WLS home. That GCC has compiled the Adafruit booloader with the included Makefile like a breeze. However, it failed to recognize the Segger from the WLS, so I couldn't flash it to the board as nrfjutil failed to execute... :/
- I tried to burn the compiled bootloader (with the bootloader + s140 SD combined) in .hex form with nRFGoStudio, however, that failed. It programmed the bootloader, but failed to verify the image and indeed the board got bricked. :/
After some additional hours I managed to "unbrick" the Feather via the "official" Adafruit Arduino IDE toolchain and the Segger, at least, but now I am back to square one.
So, now I am stuck. :/
If you have time to eventually share how do you compile and programm your bootloader I woudl appreciate that. Please keep mind, that I have very little experience with this stuff yet, so pls. try to write down even the "obvious" stuff, since that is probably not obvious for me yet...
///Gábor