ARMWSD.exe for Windows PE


Our device contains a module with an ADuC7128.  We use ARMWSD.exe v1.11 with command line arguments to update its software from within our Windows Embedded Standard 7 application and it works great.

However, all the rest of our system's software and embedded subsystems are updated from within Windows PE (Windows Preinstallation Environment). This is the operating system used to deploy Windows and Windows Embedded images.  ARMWSD.exe doesn't run inside of Windows PE because Windows PE doesn't support MFC apps--see reference at end of post for details.  We would like to update the ADuC7128 from within Windows PE to make the update process faster and less prone to user error.

To make this work, it would be nice if Analog could provide either of the following:

1. A version of ARMWSD.exe that's a C++ console app that complies with the Windows PE restrictions detailed below. This would work for Windows PE 2, 3, and 4.

2. A version of ARMWSD.exe written for .Net Framework 4 or 4.5 (e.g., a C# WPF or Windows Forms app). This would only work for Windows PE 4, the newly released version of Windows PE that came out alongside Windows 8.

Is this at all feasible for Analog to provide?




Windows PE developer's guide, page 21.

You must develop Windows PE applications with native C or C++ code that does not use MFC or ATL. Therefore, if you use the Visual Studio Project Wizard, choose a Win32 project and make sure that neither MFC nor ATL are checked.

· Set your project options to link to the static C/C++ runtime libraries, not the .dll version of Msvcrt.dll.

· Open your project properties and set “Configuration Properties \ C/C++ RunTime Library” to “Multi-threaded” or “Multi-threaded debug”, not one of the .dll versions. If you do not perform this step, your application might not run on Windows PE.

· If you plan to host your application on the 64-bit version of Windows PE, set the project build options to compile all binaries with the x64 compiler in Visual Studio.

· If you plan to host your application on the 32-bit version of Windows PE, set the project options to compile with the x86 compiler.

· Ensure that your project does not have the /clr: compiler option set. This option produces managed C++ code, which will not run on Windows PE.

· Your application can use customized .dll files that you write or license from a third party. Add these .dll files to your application for Windows PE. However, do not use Msvcrt.dll and do not include additional Windows .dll files that are not part of Windows PE.