Port an ARM BSP to Compact 2013 (Compact 2013)
November 9, 2017
The topics in this Port ARM Code to Windows Embedded Compact 2013 developer's guide provide information about making your ARM assembly code compatible with Windows Embedded Compact 2013, so that you can compile it.
The changes that are required to make your code compatible include:
- New data alignment requirements.
- New stack alignment requirements.
- Instruction set changes.
To help you implement these new requirements, Windows Embedded Compact 2013 provides a set of ARM porting macros.
As you make the required changes to your code, you can use _WINCEOSVER to conditionally compile code that specifically targets Windows Embedded Compact 2013 rather than prior versions of Windows Embedded Compact. In Windows Embedded Compact 2013, the value of _WINCEOSVER has changed to 800.
Why is updating your ARM code necessary?
The Windows Embedded Compact 2013 Native tool chain is based on the Visual Studio 2012 compiler, which provides modern compiler support for Windows Embedded Compact 2013 and improved support for the latest ISO C++11 specification. Because the Visual Studio 2012 compiler targets a newer version of the ARM Embedded-Application Binary Interface (EABI), you must make the necessary changes to your existing ARM code to run on Windows Embedded Compact 2013.
The ARM EABI is a collection of specifications that describe calling convention, data alignment, and other details specific to the interface between programs, and between programs and the operating system.
For more information about the ARM EABI, see any of the following articles:
- C++ ABI for the ARM Architecture
- Summary of the differences between version 1 and version 2 of the C++ ARM ABI
- Procedure Call Standard for the ARM Architecture
- Exception Handling ABI for the ARM Architecture