SophiaFramework UNIVERSE 5.3 |
How to get GNUARM 4.1.1 | |
---|---|
GNUARM 4.1.1 is available at the GNUARM top page where select Files and click Binary GCC-4.1 toolchain. |
How to get YAGARTO 4.4.2 | |
---|---|
YAGARTO 4.4.2 for Windows (20091018) is available at the YAGARTO top page and click SourceForge. |
About versions of development environments | |
---|---|
- For Microsoft Visual C++ 6.0, application of Service Pack 6 is necessary. - For RealView Compilation Tools for BREW 1.2, application of Build 848 patch is necessary. - It is recommended to use GNUARM 4.1.1 with Cygwin. - It is recommended to use YAGARTO 4.4.2 (20091018), because YAGARTO 4.4.2 (20091223) has some issues with math functions. |
Abbreviation | |
---|---|
"ARM RealView Compilation Tools for BREW" is occasionally abbreviated as RVCTB in this chapter. |
Click the installer icon and install SophiaFramework UNIVERSE.
Overwriting usertype.dat | |
---|---|
When you finish installing SophiaFramework UNIVERSE, Microsoft Visual Studio Keywords file "usertype.dat" will be overwritten by SophiaFramework UNIVERSE. If you have customized "usertype.dat", please backup it before installing. Default location of "usertype.dat" is the below.
|
If you develop with RVCTB 3.0, GNUARM or YAGARTO, Qualcomm BREW Elf2Mod 1.0.2 needs to be installed.
Qualcomm BREW Elf2Mod | |
---|---|
You must be certified as Brew Developer to get elf2mod tool. |
Create the environment variable "ELF2MOD_TOOL_PATH", and register the value "C:\Program Files\BREW Elf2Mod\bin" (if the tool has installed in the directory "C:\Program Files\BREW Elf2Mod").
GCC toolchains for ARM is free compilation tools for mobile phones.
SophiaFramework supports developing with GNUARM 4.1.1 and YAGARTO 4.4.2.
In case of developing with RVCTB, go to the section "Creating Projects".
If you have finished installing GCC toolchains, "Updating GNU ld Linker" and "Modifing BREW SDK Header Files" are necessary.
GNUARM 4.1.1 is available at Files -> Binary GCC-4.1 toolchain: binutils-2.17, gcc-4.1.1-c-c++, newlib-1.14.0, insight-6.5, setup.exe [25.1MB] of GNUARM.
Execute the downloaded file "bu-2.17_gcc-4.1.1-c-c++_nl-1.14.0_gi-6.5.exe".
When the setup screen appears, push the Next button and go next.
When the screen of License Agreement appears, select "I accept the agreement", push the Next button and go next.
Set the installed folder to "C:\GNUARM", push the Next button and go next.
After leaving Start Menu Folder as it is, push the Next button and go next.
With "Full installation", push the Next button and go next.
If Cygwin has already been installed(this is recommended), turn off the check of "Install Cygwin DLLs", push the Next button and go next.
If nothing is wrong, push the Install button and start to install.
In case the environment variable "PATH" is set to the path of GNUARM execution file (this is option since register other environment variable), turn off the check, push the Finish button and complete the installation.
Set the environment variable "GNUARM41HOME" (create if not exists) to "C:\GNUARM" which is the installed folder.
That's all about the installation of GNUARM.
Next, perform Updating GNU ld Linker and Modifing BREW SDK include file.
YAGARTO 4.4.2 for Windows (20091018) is available at SourceForge of YAGARTO top page.
Execute the downloaded file "yagarto-bu-2.19.1_gcc-4.4.2-c-c++_nl-1.17.0_gi-6.8.50_20091018.exe".
When the setup screen appears, push the Next button and go next.
When the screen of License Agreement appears, select "I accept the terms of the License Agreement", push the Next button and go next.
In case the environment variable "PATH" is set to the path of YAGARTO execution file (this is option because the other environment variable will be set), turn off the check, push the Next button and go next.
Set the installed folder, push the Next button and go next.
After leaving Start Menu Folder as it is, push the Install button and start installation.
Files installation is done, push the Next button and go next.
Setup is done, push the Finish button and quit the wizard.
Set the environment variable "YAGARTO44HOME" (create if not exists) to "C:\Program Files\yagarto" which is the installed folder.
That's all about the installation of YAGARTO.
Next, perform Updating GNU ld Linker and Modifing BREW SDK include file.
GNU ld linker (arm-elf-ld.exe) in GNUARM 4.1.1 is version 2.1.7. This version does not support both "--emit-relocs" and "--gc-sections" options on at the same time.
The following is a brief explanation about the two options.
"--emit-relocs" option outputs the relocation table information. BREW Elf2Mod Tool needs this information to convert an elf file into a mod file.
"--gc-sections" option deletes unsed functions to make the size of a linked module smaller.
This issue can be solved by replacing the arm-elf-ld.exe with patched GNU ld 2.19.1 (execution file).
(*) Exisisting linker is unable to emit position independent veneer codes (pic-veneer) when arm/thumb interwoking (in particular thumb mode to arm mode). The bug is also fixed in the patched edition.
In the latest YAGARTO | |
---|---|
The bug is fixed at binutils 2.20 in the latest YAGARTO (20091223) (2009/12/24 now). However, there are some issues with math functions, and we don't recommend to use it until they are resolved. |
When using BREW SDK 3.1.2 or below, you have to update the the BREW header file "sdk\inc\AEESource.h" as follows:
Example 2.1. Before Updating AEESource.h
#define DECLARE_IGETLINE(iname)\ int32 (*GetLine) (iname *po, GetLine *pgl, int32 nTypeEOL);\ void (*UngetLine)(iname *po, int32 nLenUnused) #define INHERIT_IGetline(iname)\ INHERIT_IPeek(iname);\ int32 (*GetLine) (iname *po, GetLine *pgl, int32 nTypeEOL);\ void (*UngetLine)(iname *po, int32 nLenUnused)
Example 2.2. After Updating AEESource.h
#define DECLARE_IGETLINE(iname)\ int32 (*GetLine) (iname *po, struct GetLine *pgl, int32 nTypeEOL);\ void (*UngetLine)(iname *po, int32 nLenUnused) #define INHERIT_IGetline(iname)\ INHERIT_IPeek(iname);\ int32 (*GetLine) (iname *po, struct GetLine *pgl, int32 nTypeEOL);\ void (*UngetLine)(iname *po, int32 nLenUnused)
When using BREW SDK 4.0.4 SP02, you have to update the 30th line of the BREW header file "sdk\inc\AEEOldVaList.h" as follows:
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |