Datasheet
Creating an Application
3-22 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI 0064D
Note
• The ARM C libraries are supplied in binary form only.
• The ARM libraries should not be modified. If you want to create a new
implementation of a library function, place the new function in an object file, or
your own library, and include it when you link the application. Your version of the
function will be used instead of the standard library version.
• Normally, only a few functions in the ANSI C library require re-implementation
in order to create a target-dependent application.
• The source for the Rogue Wave Standard C++ Library is not freely distributable.
It can be obtained from Rogue Wave Software Inc., or through ARM Limited, for
an additional licence fee. See the Rogue Wave online documentation in
install_directory\Html
for more about the C++ library.
3.4.1 Using the ARM libraries in a semihosted environment
If you are developing an application to run in a semihosted environment for debugging,
you must have an execution environment that supports the ARM and Thumb
semihosting SWIs and has sufficient memory.
The execution environment can be provided by either:
• using the standard semihosting functionality that is present by default in, for
example, ARMulator, Angel, and Multi-ICE
• implementing your own SWI handler for the semihosting SWI.
You do not have to write any new functions or include files if you are using the default
semihosting functionality of the library.
3.4.2 Using the ARM libraries in a non-semihosted environment
If you do not want to use any semihosting functionality, you must ensure that either no
calls are made to any function that uses semihosting or that such functions are replaced
by your own non-semihosted functions.
To build an application that does not use semihosting functionality:
1. Create the source files to implement the target-dependent features.
2. Use
#pragma import(__use_no_semihosting_swi)
to guard the source.
3. Link the new objects with your application.
4. Use the new configuration when creating the target-dependent application.