nRF Command Line Tools: nrfdfu.dll 32bit version problem when updating nRF9160 firmware

Dear support team,

we use the Nordic nrfdfu.dll (64bit) in our Win11 C#/.Net application for modem update which works fine.
When we switch our application to 32bit process and change to the Nordic nrfdfu.dll (32bit) the modem update functionality no longer works. The communication start between PC application and nRF9160 modem seems to fail and the application hangs until we stop it after some minutes.


Via DllImport we use the following methods of the nrfdfu.dll: 

        [DllImport(nrfDfuDllName, EntryPoint = "NRFDFU_connect_to_mcuboot_target", CallingConvention = CallingConvention.Cdecl)]
        [DllImport(nrfDfuDllName, EntryPoint = "NRFDFU_connect_to_modemdfu_target", CallingConvention = CallingConvention.Cdecl)]
        [DllImport(nrfDfuDllName, EntryPoint = "NRFDFU_program_package", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
        [DllImport(nrfDfuDllName, EntryPoint = "NRFDFU_close_connection", CallingConvention = CallingConvention.Cdecl)]
        [DllImport(nrfDfuDllName, EntryPoint = "NRFDFU_verify_package", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]

Do you have any idea what the reason could be?

Best regards,

Peter   

  • Hello,

    I am not aware of any known issues related to a 32-bit process. Could you please check whether nrfdfu.h is present in your installation (it is typically located under the include\ folder in the nRF Command Line Tools installation directory)? Please see the section Windows file structure.

    Kind Regards,

    Abhijith

  • Hello Abhijith,

    thank you for the response. We will check and come back to you.

    Best regards,

    Peter

  • Hi Abhijith,

    we are currently not referening or embedding the header file nrfdfu.h. Nonetheless the 32bit package is copied in the same folder structure like when we use the 64bit package.


    we have 2 folders: Nordic64Bit and Nordic32Bit containing you native dlls and header files: 

    Nordic64Bit 

        nrfdfu.dll

        nrfdfu.h

        nrfjprog.dll

        ...

    Nordic32Bit 

        nrfdfu.dll

        nrfdfu.h

        nrfjprog.dll

        ...

    these folder also include our managed C# components/wrapper files in which your native DLL is improted via DLL import like mentioned above.

    When I use the 64 bit version, everthing is OK, but when I switch to 32 bit version the modem update hangs up.

    Best regards and thanks in advance

    Johannes

  • Hi Abhijith,

    we are currently not referening or embedding the header file nrfdfu.h. Nonetheless the 32bit package is copied in the same folder structure like when we use the 64bit package.


    we have 2 folders: Nordic64Bit and Nordic32Bit containing you native dlls and header files: 

    Nordic64Bit 

        nrfdfu.dll

        nrfdfu.h

        nrfjprog.dll

        ...

    Nordic32Bit 

        nrfdfu.dll

        nrfdfu.h

        nrfjprog.dll

        ...

    these folder also include our managed C# components/wrapper files in which your native DLL is improted via DLL import like mentioned above.

    When I use the 64 bit version, everthing is OK, but when I switch to 32 bit version the modem update hangs up.

    Best regards and thanks in advance

    Johannes

  • Hello Peter,

    Since you marked your response as verified, I did not see the reply you posted a few days ago. It’s good that you reposted it. I have now raised this internally to check if there is any issue with the 32-bit version. I will let you know once I receive an update and share it here.

    Kind Regards,

    Abhijith

Related