User manual
Creating a project using the GNU toolchain Ride7 for ARM
- 12 -
2.4.3 RAM mode
This is the “debug” mode, which you will want to use during the development phase of your
project for faster hardware debugging. (This mode can also be used with the software simulator,
but then it offers no advantage in terms of download/programming time and number of
breakpoints).
In this mode, the RAM of the STR71x is at 0x20000000 but it is also seen at 0x00000000.
For the STR73x, the RAM is physically at 0xA0000000 but it is also seen at 0x00000000.
For the STR75x, the RAM is physically at 0x40000000 but it is also seen at 0x00000000.
For the STR91x, the RAM is physically at 0x04000000. The reset and interrupt vectors are
placed in the FLASH and jump to some RAM addresses.
In this mode, the linker places the code and data segments in the RAM. The data initialization
values are placed in the FLASH. The final application cannot use this mode because the RAM is
volatile and has to be reloaded at every power-up of the microcontroller.
It can be used while debugging because Ride7 is able to load the RAM at the beginning of every
debug session.
The constants (strings, etc.) and the initialization values for the global variables are still stored in
the FLASH. Therefore, do not be surprised if Ride7 has to erase and program the FLASH when
starting a debug session in RAM mode.
2.4.4 External Memory mode
This mode uses the external memory for booting.
In this mode, the target External Memory space is also seen at address 0.
Some of the ARM microcontrollers (STR711, STR712, etc.) cannot access external memory
because they do not have the necessary pins. This mode will not work with these
microcontrollers.
Ride7 cannot debug nor program using this mode because it would depend on the type of external
memory. But you can still use Ride7 as a project manager and software simulator, in this mode.
2.5 GNU GCC toolchain configuration
Ride7 Options Manager wraps the most important options needed to configure GCC toolchain.
The GNU options are separated in 3 sections: GCC Compiler, AS Assembler and LD Linker.
Only the sections that apply to the selected project node and its children are displayed: for
example:
• if a C source file is selected, only GCC Compiler section will be visible
• if the application or project node is selected, all three sections will be visible
Important note: when you modify options on a child node (most probably a source file), you
create a superset of local options for this node and its own children. If you want to globally
modify an option (this is the case most of the time), do not forget to verify that the application
node is selected, and not a child node.
Refer to the tools specific documentation for a detailed description of the options of the GCC
Compiler and the AS Assembler. The Linker options are explained below.