®
AN2146
APPLICATION NOTE
STR71xF Embedded Flash Programming with ADS
INTRODUCTION
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.
1
Overview 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 2005
1/6
STR71xF Embedded Flash Programming with ADS
2
Programming 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
ARM Software Development Toolkit User Guide.
2.1
Converting 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
-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
ARM Developer
Suite Linker and Utilities Guide.
2.2
Configuring 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:
1
Configure switches
SW13, SW14
and
SW15
to RAM Mode (RAM mapped at 0h).
Table 1: STR710-EVAL switch configuration
Switch
• SW13
• SW14
• SW15
Description
Boot mode 1:
Boot mode 0:
Boot mode EN:
Execute code from internal RAM
RAM mapped at 0h
Position
2-3
1-2
2-3
Note:
2
You can refer to STR710-Eval Board Datasheet for detailed descriptions of switch positions and
boot modes.
Connect 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
3
Start the Multi-ICE server and select
File>Auto Configure
. Multi-ICE server connects to and
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
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.3
Using 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:
1
2
3
Copy the furnished
flash.li
file for STR71xF devices to the directory
Install_directory\ADS\bin
Start AXD.
In AXD select
File>Flash Download…
The
Flash DownLoad
dialog box is displayed (see
Figure 2)
Figure 2: Flash DownLoad dialog box
3/6
STR71xF Embedded Flash Programming with ADS
4
Specify the pathname for your binary file, or click
Browse
to select the file.
Note:
5
6
If the path name contains spaces you must enclose the pathname in quotes.
Click
OK
. The Flash downloader reads your binary file and displays the download settings in the
Console processor view.
You can edit the settings if required, or press
Enter
. AXD will display a message when the data has
been written to flash (see
Figure 3).
Figure 3: Successful download to Flash memory
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.
If you downloaded your program at starting sector 0, then change the switch positions to boot from
Flash memory (see
Table 2)
and reboot, you can see your program running.
Table 2: STR710-EVAL switch configuration
Switch
• SW13
• SW14
• SW15
7
Description
Boot mode 1:
Boot mode 0:
Boot mode EN:
System executes a “primary boot loader (ST-firmware)”
from Boot-FLASH then jumps to RAM
BOOTFLASH mapped at 0h
Position
1-2
2-3
2-3
4/6
STR71xF Embedded Flash Programming with ADS
3
For 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
4
Revision History
Date
Revision
1.0
• Initial release
Table 3: AN2146 Revision History
Description
01-May-2005
5/6