This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

NRF52840 dongle firmware question

The dongle is an excellent piece of hardware. However the features of DFU is rather limited.

I am wondering if I can put two hex files onto the dongle? For example,

1. My own bootloader right after MBR at flash address 0x1000, takes 64KB

2. My own application firmware hex file, starting from address 0x11000.

In this case my code can manage the entire flash memory up to the nRF bootloader while I can still use nRF connect with nRF DFU bootloader.

So far I have not tried two hex files. I would like to ask first if it is even possible?

Parents Reply
  • Hi Vidar,

    Thanks for your response. I just did some further reading on your Q&A. Here are my understandings:

    1. The nRF MBR will jump to fixed address of 0x1000 if the DFU is not triggered.

    2. nRF tools can only write hex files with specified starting address to dongle.

    If my understandings are correct I believe it is enough for what I wanted.

    I do have j-link, tag-connect pogo cables etc. But I would like to make my system available to people who only have the dongles.

    Also about the j-link, I managed to find out the pin out layout of the tag-connect pogo cables for the dongle. It appears the adapter below may work and I am still waiting for shipment.

    https://www.adafruit.com/product/2094#tutorials

Children
  • Hi,

    1. Yes, correct.

    2. Yes, this limitation applies to when you do serial DFU over the USB interface. The app RAM start address must also be set to 0x20000008 as the first two words are reserved to the MBR (for interrupt forwarding).

  • Thanks again!

    Just did a quick search on the Q&A and learnt that interrupt forwarding is for CM0 which doesn't allow NVIC relocation.

    I didn't know there is such a thing in the world before!!!

    I believe in my own bootloader I can still relocate NVIC because I never meant to build anything for CM0 and I don't plan to use soft device. Is that right?

  • No problem Slight smile  Unlike the M0, the M4 has the VTOR register which, after startup, lets you cange the interrupt forwarding address in HW (default address after reset is always 0x0). And yes, you can set the VTOR to point to your application's vector table when you don't use the Softdevice.

Related