 |
Target Platform Requirements
This section describes the target device and build tool requirements for the phoneME Advanced build system.
The following sections include build system recipes for specific target platforms.
As a technology, phoneME Advanced can address a variety of target devices.
So in this section we will describe the common features of these target devices
to help with understanding what kinds of devices phoneME Advanced is appropriate for.
Later, we'll describe how to setup the build system for two example target devices.
Common Target Device Features
Target devices for phoneME Advanced technology
are sometimes called resource-constrained devices.
The table below describes some of the main features of these target devices:
| Category |
Description |
| CPU | 32-bit RISC w/ MMU. |
| OS |
ANSI standard library.
POSIX thread library.
Berkeley socket library.
Uniform memory address space.
|
| graphics (optional) | Thread-safe GUI library. |
|
The memory requirements for target devices
vary too much to quote a helpful statistic.
However, it may be useful to note that
phoneME Advanced was designed to execute out of ROM
for memory-constrained applications.
These requirements are described in greater detail in the
CDC Porting Guide.
Target Build Toolchain Requirements
Like the host build tools,
the target build tools can be discovered by the CDC build system
with the CVM_TARGET_TOOLS_PREFIX.
This build system variable helps
identify the required target build tools
described in the following table:
| Description |
Example |
| C compiler | mips-cobalt-linux-gcc |
| C++ compiler | mips-cobalt-linux-g++ |
| assembler | mips-cobalt-linux-as |
| linker | mips-cobalt-linux-gcc |
| library archive indexer | mips-cobalt-linux-ranlib |
| library archive utility | mips-cobalt-linux-ar |
|
In some cases, these tools can be combined.
For example, with the Linux x86/PC example in the host build section,
gcc takes on the role of the C compiler, the assembler and the linker.
When building phoneME Advanced for a new target platform,
you must first acquire target build tools that are appropriate
for the target platform.
In many cases,
particularly for Linux variants,
this requirement can be satisfied
with a cross-compiler toolchain based on gcc and binutils.
The CDC build system has been tested
with several recent versions of the GCC compiler,
especially 4.x and 3.x.
The recipes in this quickstart guide include examples based on this approach.
For some platforms you'll need to get these tools from a board vendor or partner,
so we also include an example based on Microsoft developer tools.
Note that the target toolchain should also include header files and libraries that are appropriate for the target device.
Target Device Notes
Note:
The phoneME Advanced technology has been built and tested
with Linux/x86 as well as several target devices.
Each target device for phoneME Advanced technology
reflects an OS/CPU combination
that requires certain resources
from the target platform development environment:
- A compatible target compiler.
- Target system libraries and header files.
- [Optional] A target-specific version of the Qt library and header files.
- A set of UNIX build utilities compatible with the CDC build system.
The first two of these requirements
are usually provided by the device vendor.
For example, a development board vendor
might provide an SDK with a compiler, libraries and header files
for a specific development board
or they might make reference to a third-party toolchain.
Qt
is included as a prebuilt component for most Linux distributions.
But building this library for an alternate target device
requires the same kind of SDK resources as described above.
The procedures to build Qt
are described in the Qt reference documentation.
Finally,
the UNIX utilities needed by the CDC build system
are provided by most current Linux distributions like
Ubuntu.
The source code layout and build system procedures
for target devices are described in the
CDC Build System Guide.
ARM CPU Notes
-
ARM v4 or higher
-
AAPCS (new) or APCS calling conventions
-
VFP (new) or soft float
By default, the CDC build system assumes APCS calling conventions.
MIPS CPU Notes
-
32-bit using o32 calling conventions
Note: Most MIPS cores are 64-bit, but are run in 32-bit mode.
|