Skip to main content
Visitor II
July 12, 2021
Solved

STM32H7 Dual Core DFU

  • July 12, 2021
  • 2 replies
  • 1525 views

I'm working with the STM32F7 dual-core capability for the first time. Using NUCLEO-H745ZI-Q, DfuSe Demo v3.0.6, DFU File Manager v3.0.6

I have one program for the CM7 core and another for the CM4 core. I can enter the system bootloader by applying 3.3V to BT0 on my NUCLEO-H745ZI-Q board. Here's my testing:

  • I can load and run both programs on each core with the onboard ST-LINK
  • I can load and run the CM7 program by itself with DFU.
  • I cannot load and run the CM4 program by itself with DFU. DfuSe doesn't even look to start.
  • I cannot load and run a DFU file containing the CM4 and CM7 program. It stalls halfway through the erase. To have both BIN files in one DFU file, the DFU File Manager allows multiple BIN files under the BIN file button. The CM7 is placed at address 0x08000000 and the CM4 is placed at 0x08100000. This matches the memory map file for my ST-LINK, which is working.

I'm curious how to utilize the DFU to program for both cores. What am I missing? Can you point me to any threads or documentation dealing with this issue?

Thanks

    This topic has been closed for replies.
    Best answer by mƎALLEm

    Dear @SEast.1​ 

    We recommend to use STM32CubeProgrammer a replacement of Dfuse tool.

    The tool is downloadable from this link: https://www.st.com/en/development-tools/stm32cubeprog.html.

    These are the steps to use this tool to use DFU bootloader on dual core (see screenshot):

    0- Connect your USB FS of the board, connect BT0 to VDD and push reset.

    1- From the menu select USB instead of STLink (default option)

    2- Click "Connect" button.

    3- Browse and select the hex file you want to download.

    0693W00000Bdg9yQAB.png 

    Normally you can do any handling on OB or the Flash. 

    So you can download either CM7 program or CM4 program binaries with this manipulation.

    Note that you can do this operation only if the cortex-M7 boot is enabled in option byte as it's the only the core that runs the bootloader:

    0693W00000BdgHGQAZ.pngHope this answers your question. If it's the case, please click on "Select as Best" this answer.

    STM32

    2 replies

    mƎALLEmAnswer
    Technical Moderator
    July 14, 2021

    Dear @SEast.1​ 

    We recommend to use STM32CubeProgrammer a replacement of Dfuse tool.

    The tool is downloadable from this link: https://www.st.com/en/development-tools/stm32cubeprog.html.

    These are the steps to use this tool to use DFU bootloader on dual core (see screenshot):

    0- Connect your USB FS of the board, connect BT0 to VDD and push reset.

    1- From the menu select USB instead of STLink (default option)

    2- Click "Connect" button.

    3- Browse and select the hex file you want to download.

    0693W00000Bdg9yQAB.png 

    Normally you can do any handling on OB or the Flash. 

    So you can download either CM7 program or CM4 program binaries with this manipulation.

    Note that you can do this operation only if the cortex-M7 boot is enabled in option byte as it's the only the core that runs the bootloader:

    0693W00000BdgHGQAZ.pngHope this answers your question. If it's the case, please click on "Select as Best" this answer.

    STM32

    SEast.1Author
    Visitor II
    July 14, 2021

    This was exactly what I was looking for because I was using the incorrect software. I'll need to play around with the STM32CubeProgrammer more, but I was able to load my programs on to different cores in DFU.

    Much appreciated!