The purpose of this application note is to provide ARM Developer Suite (ADS) users with information to
help them program binary files to Flash memory using the software’s Flash downloader utility. This document
provides step-by-step instructions for converting an application in ELF format to simple binary format and
then downloading the resulting binary to the internal Flash memory of the STR71xF microcontroller on a
target application board.
Necessary software and hardware tools
●ARM Developer Suite version 1.2, a complete software development solution for creating
applications for ARM core-based microcontrollers that includes the AXD debugger.
●Flash downloader (flash.li) for STR71xF, the modified version of the default Flash downloader,
included with this application note, which allows the identification and programming of STR71xF
devices.
Note:The default integrator version of the Flash downloader that is used to program other standard CFI-
type Flash devices is furnished in binary format in the directory: install_directory\ADS\bin\flash.li.
You may want to keep a copy of the default version of flash.li in another directory or with another
name if you work with devices other than the STR71xF.
●STR710 Evaluation Board (STR710-EVAL) or other evaluation/application board featuring an
STR71xF microcontroller.
●ARM MULTI-ICE server and interface unit (JTAG standard interface)
Note:It is also possible to use ARM Angel Debug Monitor (running from RAM) and a serial or parallel
connection to the host PC. For more information about Angel, refer to the ARM Software
Development Toolkit User Guide.
1Overview of Flash programming with ADS
When you invoke the Flash downloader utility (flash.li) from the AXD debugger, the debugger downloads this
utility into RAM on the target board. The microcontroller then executes the Flash programming routine,
retrieving the binary file from the host PC and then programming it to Flash memory.
The Flash downloader utility (flash.li) provided with this application note has been adapted by ST
Microelectronics to allow programming of STR71xF microcontrollers. This modified version must be used
when programming your STR71xF device, instead of the default integrator version of the Flash downloader
that is provided with ADS.
REV. 1
May 20051/6
STR71xF Embedded Flash Programming with ADS
2Programming procedure
The following section takes you step by step through the process of downloading a binary file to Flash
memory.
The STR710-Eval board is used as an example to illustrate the hardware set up, however the same
fundamental procedure can be applied to other application/evaluation boards featuring ST ARM core-based
microcontrollers.
The example in this procedure also refers to ARM Multi-ICE, however it is possible to use the ARM Angel
Debug Monitor. For more information refer to the
2.1Converting ELF image file into plain binary format
The file that you will program to internal Flash must be in plain binary format suitable for direct download into
Flash memory. You can convert your image files in Executable Linkable Format (ELF) to plain binary format
using the fromELF utility.
To convert an ELF file to a binary (.bin) file, invoke the fromELF utility using the command line as shown
below:
fromelf -bin -o outfile.bin infile.axf
ARM Software Development Toolkit User Guide
.
-bin: specifies the output file format
-o outfile.bin: specifies the name of the output file
infile.axf: specifies the ELF file to be translated
For a detailed explanation of the fromELF command line and options, you can refer to the
Suite Linker and Utilities Guide
.
ARM Developer
2.2Configuring and connecting to hardware
The target board should be configured to boot from RAM prior to invoking the Flash downloader utility. This
is to ensure that the memory where the Flash programming routine will be downloaded is mapped to RAM.
If you are using the STR710-Eval board, configure the boot mode as follows:
1Configure switches SW13, SW14 and SW15 to RAM Mode (RAM mapped at 0h).
Table 1: STR710-EVAL switch configuration
SwitchDescriptionPosition
• SW13Boot mode 1:
• SW14Boot mode 0: 1-2
• SW15Boot mode EN: 2-3
Execute code from internal RAM
RAM mapped at 0h
Note:You can refer to STR710-Eval Board Datasheet for detailed descriptions of switch positions and
boot modes.
2-3
2Connect the target board to your host PC via the Multi-ICE interface device and power on your
target board.
2/6
STR71xF Embedded Flash Programming with ADS
3Start the Multi-ICE server and select
identifies the target. Once the target is identified, the window will be similar to that shown in
Figure 1
Figure 1: Multi-ICE server connected to target board
.
File>Auto Configure
. Multi-ICE server connects to and
Note:If Multi-ICE server cannot identify the target you will have to do a manual configuration. Refer to the
ARM Multi-ICE User Guide.
2.3Using the Flash downloader from AXD
Once you have connected to the target you can launch AXD and run the Flash Downloader utility. From the
AXD interface, you can now invoke the Flash downloader utility and download your binary file to the target.
To do so:
1Copy the furnished flash.li file for STR71xF devices to the directory
2Start AXD.
3In AXD select
Figure 2
Figure 2: Flash DownLoad dialog box
)
File>Flash Download…
The Flash DownLoad dialog box is displayed (see
Install_directory\ADS\bin
3/6
STR71xF Embedded Flash Programming with ADS
4Specify the pathname for your binary file, or click
Browse
to select the file.
Note:If the path name contains spaces you must enclose the pathname in quotes.
5Click OK. The Flash downloader reads your binary file and displays the download settings in the
Console processor view.
6You can edit the settings if required, or press
been written to flash (see
Figure 3: Successful download to Flash memory
Figure 3
).
Enter
. AXD will display a message when the data has
Note:The Flash downloader lets you choose the start sector to write in. If you choose a start sector other
than zero, your image will be loaded in the specified sector, but when you boot from the on chip
Flash memory you will not see your program running.
7If you downloaded your program at starting sector 0, then change the switch positions to boot from
Flash memory (see
Table 2: STR710-EVAL switch configuration
SwitchDescriptionPosition
• SW13Boot mode 1:
• SW14Boot mode 0: 2-3
• SW15Boot mode EN: 2-3
4/6
Ta bl e 2
) and reboot, you can see your program running.
1-2
System executes a “primary boot loader (ST-firmware)”
from Boot-FLASH then jumps to RAM
BOOTFLASH mapped at 0h
STR71xF Embedded Flash Programming with ADS
3For further information...
All the latest news, documentation and software downloads for STR7 microcontrollers and development
tools can be found at www.st.com/mcu.
If you require further information about this procedure or the ARM tools or utilities referred to in this
document, you can download the following supporting documents at www.arm.com:
●ARM Application Note 111 Flash Programming
●ARM Developer Suite Linker and Utilities Guide
●ARM Multi-ICE User Guide
●ARM Software Development Toolkit User Guide
4Revision History
Table 3: AN2146 Revision History
DateRevisionDescription
01-May-20051.0• Initial release
5/6
STR71xF Embedded Flash Programming with ADS
The present note which is for guidance only, aims at providing customers with information regarding their
products in order for them to save time. As a result, STMicroelectronics shall not be held liable for any direct,
indirect or consequential damages with respect to any claims arising from the content of such a note and/or
the use made by customers of the information contained herein in connection with their products.
Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences
of use of such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is
granted by implication or otherwise under any patent or patent rights of STMicroelectronics. Specifications mentioned in this publication are
subject to change without notice. This publication supersedes and replaces all information previously supplied. STMicroelectronics products
are not authorized for use as critical components in life support devices or systems without express written approval of STMicroelectronics.
The ST logo is a registered trademark of STMicroelectronics.
All other names are the property of their respective owners