You Are Here:

Community: Wiki

This page was last modified on 15 January 2009, at 18:24.

Build Targets

From Forum Nokia Wiki

Build targets represent the various binary formats which could be used for a build. The ones supported by Symbian OS are listed below.

Contents

Smartphone devices

ARM4 – 32-bit ARM instruction set

THUMB – 16-bit ARM instruction set

ARMI – ARM interchange format


Emulators

WINS – Microsoft

WINSCW – Code Warrior

WINSB – Borland


The process

When you specify one of these build targets in your build command, the build generates and executes a makefile that invokes the development tools needed to produce the appropriate binary output. The executables are then placed in the /epoc/release directory under the appropriate build target’s name as described previously.


The smartphone build targets use the GNU tools to produce code for the ARM processor – all current Symbian OS smartphones are based on ARM. But why are there multiple ARM build targets, and which one do you use? ARM4, THUMB and ARMI are known as Application Binary Interfaces (ABI) and represent different ARM binary outputs. The ARM processor has two instruction sets: a 32-bit set (ARM4) and a 16-bit set (THUMB). The first is fast, but uses more memory, the latter is compact, but slower. ARMI is the 32-bit instruction set with extra logic to allow it to call THUMB code in addition to other 32-bit code. ARMI is known as ARM interchange format.


Which target should you use

The most commonly used device build target is ARMI – use this one when in doubt. It is the safest for third-party developers since it will interface with code compiled as ARM4, THUMB and other ARMI code, and will work on any available Symbian OS smartphone. If memory size is a significant concern you can use THUMB. Since THUMB uses 16-bit instructions, the executables are somewhat smaller than ARMI, but ARMI is faster. Many popular smartphones support THUMB.


Do not use ARM4 unless you are writing system-level code such as device drivers and board support software. ARM4 is used by phone manufacturers and is not usually supported on the smartphone for userlevel programs.


WINS, WINSCW, and WINSB are emulator targets for Microsoft, Code Warrior, and Borland Windows development tools respectively. The emulator targets generate x86-based Windows binaries; however, you need to use the build target that corresponds to the Windows toolset you have on your PC. This ensures that your Windows development tools are invoked when building. In addition to invoking the correct tools, each emulator build target has its own emulator executable (actually two: a UDEB version and a UREL version).

It’s required that the emulator, system code, and user programs are compiled with the same Windows compiler – this is needed so that they can link together correctly.



Stub Article


This Forum Nokia Wiki article is a stub and we are counting on your expertise to help us grow it to a full blown article.


Look below for a "Call For Entries" section which holds the current backlog for this article. Feel free to address any of the backlog topics and to remove them from the backlog if you are confident that they have been already fully covered. If in doubt use the "Comment" tab for discussing the issue. You can of course add more topics to the backlog, they will be handled later by you or any other contributor.
If the "Call For Entries" section is missing please add it yourself but also add some topics to the backlog. The template for creating a call for entry is {{CallForEntry2}}





Call For Entries


The topics listed below are the backlog of this stub article.

  • Update needed for Symbian OS 9.x+

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fHttpE3aE2fE2f217E2e218E2e225E2e2E3a2082E2findeE78E2ehtmlE253FX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqfntypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZtypeQUqfntypeZWikiContentQ qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqfntypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ