Hi, My project include two MCU with n51822 and STM32. I expect upgrading STM32 application firmware by n51822 DFU function. Do you give your advice to implement it by modifying nRF51_SDK_8.1.0_b6ed55f\examples\dfu\bootloader example? Thank you.
Hi, My project include two MCU with n51822 and STM32. I expect upgrading STM32 application firmware by n51822 DFU function. Do you give your advice to implement it by modifying nRF51_SDK_8.1.0_b6ed55f\examples\dfu\bootloader example? Thank you.
Hi Leif,
It should be ok with what you planning to have.
You have two options. First is to have a RAM buffer on the nRF51 and then send the packets you receive from the phone to the STM32 via UART on the fly. This approach require you to have a DFU bootloader or something like that to handle the packets from the nRF51 on the STM chip running at the same time. This solution doesn't have restriction on the size of the new image of the SRM32 chip.
Second approach is what you described, you store the image for STM32 on the nRF51 and then later on you have the bootloader on the STM32 to talk to the nRF51 and get the image from the nRF51. With this approach you will have limitation of the size of the swap area on the nRF51 (about 70kB). But it's safer because the image is stored on flash before it's sent to STM32.
Unfortunately, we don't have any example for doing that. What we have is the bootloader for the nRF51 only. But I don't see any technical problem to implement it.
Hi Leif,
If you want to maximize the limit size of the STM application image then implementing the mechanism to transfer the image from the nRF51 to the STM in the nRF51 bootloader is what I would suggest. You can use a simple flag to tell if the image is for the STM or for the nRF51.
If the size of the application on the nRF51 is not too big, you can think of integrate it into the bootloader of the nRF51.
Then you can have just the bootloader on the nRF51 doing both, normal tasks and the DFU task.
You can do what you describe, on receiving the image by the bootloader, and then use the application to talk to the STM32 and send the image. But it will require 2 steps. And I don't think it would be much less work.
Hi Leif,
If you want to maximize the limit size of the STM application image then implementing the mechanism to transfer the image from the nRF51 to the STM in the nRF51 bootloader is what I would suggest. You can use a simple flag to tell if the image is for the STM or for the nRF51.
If the size of the application on the nRF51 is not too big, you can think of integrate it into the bootloader of the nRF51.
Then you can have just the bootloader on the nRF51 doing both, normal tasks and the DFU task.
You can do what you describe, on receiving the image by the bootloader, and then use the application to talk to the STM32 and send the image. But it will require 2 steps. And I don't think it would be much less work.