AnsweredAssumed Answered

Need .dfu from IAR when mapped to the ITCM interface

Question asked by Zeevi.Ariel on Mar 29, 2017

What must I do from IAR to make a file which will properly convert to a .dfu file which will burn onto my board using the DFUSE demo - realizing that we are mapped to the ICTM interface?

 

We are using the STM32 32-bit ARM Cortex MCUs STM32F746IG.

I'm trying to use the DFUSE demo (3.0.5) to program my board.  I'm having a strange issue that I'm trying to understand.

 

My application is being developed in IAR, and is linked/located to the flash using the ICTM interface.  The code is located at 0x200000 and upwards, and works fine under the debugger.

The option bytes of the chip are in their default state so that when the boot pin in in mode 0, it is booting from the flash at the ITCM interface, and this also works fine.  That is, if I burn my application using the JTAG, I can see the code in place, and it runs when we boot.

 

When I try to use the DFUSE file manager and demo, it seems to work.  I take a hex file which I generate from my enviroment, which is located at 0x200000 and up, and it converts to a dfu file.  When I try to burn it to region 0 (internal flash), it claims to have worked and verifies.  However, it does nothing.

 

I took another dfu file from the evaluation board, which I noted was mapped to the AXIM interface (the HEX file relocation lines began ":020000040800...").  This burned onto my board correctly (verified by entering the debugger via the JTAG and looking at the contents of the vector table, which was located at 0x200000, but filled with addresses in the  0x8000000+ range)..  Of course it did not run, but the process worked.  Seeing that it worked, I then disconnected the JTAG, tried to burn my dfu file using the utility, and it claimed to have worked including verification, but using the JTAG again verified that the vector table remained unchanged.

 

As I noticed that the region 0 (internal flash) is using the AXIM interface addresses, I tried to manually "re-map" my code by replacing all the relocation lines in the HEX file from ":02000004002x..." to ":02000004080x...", but the file manager refused to convert the files to DFU files, no specific reaason given. (Just something along the lines of "unable to convert the file").  I verified that the checksums of the modified lines were correct, but no avail.

 

What must I do from IAR to make a file which will properly convert to a .dfu file which will burn onto my board using the DFUSE demo - realizing that we are mapped to the ICTM interface?

Outcomes