• use literal pools
• set software breakpoints for debugging
• download code
• write self-modifying code.
Instruction fetches from data TCM are not allowed.
Warning
An attempt to load an instruction from data TCM might result in an access to off-chip memory at the same address.
This is core dependent. Refer to the Technical Reference manual for your processor.
7.7.2 Initializing the ARM966E-S
The initial configuration of the core is controlled by two input pins:
VINITHI
• HIGH, the vector table is located at 0xFFFF0000
• LOW, the vector table is located at 0x0.
INITRAM
• HIGH, TCM is enabled
• LOW, TCM is disabled.
These pins determine the configuration of the core on power-up, and on reset. You can override these configurations
in software by writing to CP15.
You can:
• Tie both INITRAM and VINITHI HIGH.
Execution starts at 0xFFFF0000. Boot code initializes TCM, then relocates the vector table to 0x0 for improved
performance.
• Tie INITRAM low, and VINITHI HIGH.
Execution starts at 0xFFFF0000. Boot code enables and initializes TCM, then relocates the vector table to 0x0
for improved performance.
• Tie both INITRAM and VINITHI LOW.
Execution starts at 0x0, in off-chip memory. Boot code must branch out of the bottom 128MB address range
before TCM can be enabled and initialized.
Caution
Do not tie INITRAM HIGH with VINITHI tied LOW. The result is unpredictable.
7.7.3 ARM966E-S warm reset
You can implement a warm reset running in TCM.
INITRAM and VINITHI can be controlled by memory-mapped registers. You can then have different behavior for
power-on reset and warm reset.
For example, both pins might be LOW for power on reset. Boot code reconfigures the warm reset behavior before
branching to the application.
You can implement a warm reset running in TCM.
To implement a warm reset:
• TCM must be initialized
• INITRAM must be HIGH
• VINITHI must be LOW.
7.7.4 ARM966E-S performance issues
The ARM966E-S runs at peak performance when:
• executing code contained in TCM
• accessing data contained in TCM
• the write buffer is enabled.
The ARM9E core stalls:
Caches and Tightly Coupled Memories
Copyright ?1999 2001 ARM Limited 7-13
Commentaires sur ces manuels