cancel
Showing results for 
Search instead for 
Did you mean: 

Steps to perform Firmware Upgrade using ST25DV dynamic tag

Nikhil D&K
Senior

Hello,

I would like to know how can i perform the Device Firmware upgrade using ST25DV dynamic tag.I am using "en.STSW-ST25DV001SC-Source_v1.2.0" and tried out both demonstration examples

  1. ST25DVDemo ( firmware update using internal flash)

I am able to perform firmware update using ST25DV demo example, but after reset it jumps to original firmware.

So i would like to know how can i implement a firmware upgrade feature using "ST25DVDemo" example so that after reset it boots to the uploaded firmware instead of the old firmware.

Thanks,

Nikhil.

36 REPLIES 36

Hello @Rene Lenerve ,

But my code is fully ready and it will be difficult to move to start from the scratch, as we have also completed the low power testing in final firmware. So i tried to make changes in my final project such as System_Init function and Bank swap code is taken from the dual boot example itself. But unable to load f.w from bank 2. 

 

Also their is no .ioc file present in STM32Cube_FW_L4_V1.18.0\Projects\NUCLEO-L496ZG\Examples\FLASH\FLASH_DualBoot\STM32CubeIDE. 

 

So can you tell me what steps did you take if you create a new project on L476 for testing dual bank, instead of using FW repo example directly. Or you can look at the demo example i have attached previously, and tell me the issue if you find something wrong. 

 

Thanks 

 

 

 

 

Hi @Nikhil D&K ,

I ran your example DualBank_Test (converting it to L476 before) and it worked.

I ran the STM32CubeL4 example on the L476 and it worked also.

So maybe you are not programming both firmware correctly.

I used STM32CubeProgrammer and first firmware @0x08000000, second firmware @0x08080000 (prior to reset BFB2 option byte before programming).

Hope this will help you.

Kind Regards.

Hello @Rene Lenerve 

Did you make any changes in my project? Like any change in swap bank code and system init code ? Also will like to know did you find any issue in my code. 

 

Steps which I perform for dual Bank testing:

1. Clear BFB2 bit in user configuration register. 

2. Flash 2nd firmware image ata address 0x08080000. 

3. Flash main program using stm32 cube ide. 

4. Expected outcome on button press the bank should swap and 2nd firmware should get loaded. 

Am I performing correct steps ? It will be very much helpful if you can create and send me a dual Bank example for stm32l496vgt6 controller selected as target in stm32 cube ide.  I can test that on my board and use it as base for porting my already developed code.  

Hello @Rene Lenerve ,

Here is  a quick update, when  i updated the linker script of STM32L496VGT controller with the linker script available in DUAL Bank swap of STM32L496ZGTx controller, i am able to perform the bank swap successfully. 

 

So can you please tell me whats the difference between the two linker script available for both controllers. I have attached the linker script of both controllers in txt file. Once again i would like to tell i was able to perform dual bank example on STM32L4VGTx controller using STM32L496ZGTx linker script. 

 

So would like to know the changes i should make in VGTX linker script to make it work. 

Hi @Nikhil D&K ,

I had to convert project files to the STM32L476 MCU (done with cubeMX), other than that no further changes were made.
Your steps look good, just make sure there is no option to completely erase the flash memory before the programming set in your step 3.

Kind Regards.

@Nikhil D&K,

First, great that you get it working as expected.

There is no big differences between both files. In the Z version there is only an sram2 section defined in addition but not used in your code (if you used the code sent previously), on the V version this section is merged with the ram and not defined.

Are you sure only this file was changed on your second try?

Kind regards.

Yes only this file has been changed from my previous try. And i confirm it.