This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

UART DFU MBR example

Hi,

I'm trying to use uart dfu mbr example and when I flush boot loader via jlink I see that it write mbr hex file at address 0x0. My main application also started from address 0, should I move it to address MBR_SIZE or this mbr hex file used only for debugging.

Parents
  • Hi Uri, 

    The MBR is needed for the bootloader to operate. If your application started from address 0, you would need to move it to MBR_SIZE (0x1000). You can refer to our blinky example made for MBR compatibility \examples\peripheral\blinky\pca10040\mbr. 

  • Hi, I encountered in problem when I send fw image to boot loader, it is crushes after second write request, init packet sent ok, but when i start transfer fw image it boot loader is crushed. Do you know what can be a reason?

  • Hi, 

    Do you have any log from the bootloader and from nrfutil ? 

    Have you done any modification to the bootloader ? Have you successfully tested with the stock bootloader example and managed to update for example the blinky example  ? 

  • No I have not log from boot loader. I implemented protocol of boot loader in main processor that connected via uart with processor with boot loader. I send init packet and it is working fine, but when I start to send image boot loader crushes. I modified project to match it to 52805, because nordic does not provide boot loader for this processor, and modifications is not only for size, but I'm sure I implemented the protocol in right way. The problem in boot loader definitions. What can be a problem in boot loader writing firmware? What definitions in sdk_config.h I should to check?

  • Hi Uri, 
    Could you clarify that you are planning to send image from a nRF52 to another nRF52 ?
    Which example did you base your DFU master on  ? Have you got a look at my example here ?
    I would suggest to test doing DFU from PC or from my example with no modification , just to test and make sure the bootloader on the DFU target works fine. After that you can start to test on your own DFU master.

    If it works with my example (or from PC) but not on your DFU master, you can try to record a logic trace on the UART pins and compare what is sent from my example or PC with what you send from your DFU master. 

Reply
  • Hi Uri, 
    Could you clarify that you are planning to send image from a nRF52 to another nRF52 ?
    Which example did you base your DFU master on  ? Have you got a look at my example here ?
    I would suggest to test doing DFU from PC or from my example with no modification , just to test and make sure the bootloader on the DFU target works fine. After that you can start to test on your own DFU master.

    If it works with my example (or from PC) but not on your DFU master, you can try to record a logic trace on the UART pins and compare what is sent from my example or PC with what you send from your DFU master. 

Children
Related