ARM Technical Support Knowledge Articles

TRANSFERRING CONTROL FROM BOOT LOADER TO APPLICATION

Applies to: C166 C Compiler

Answer


Information in this article applies to:


QUESTION

My target hardware has a BOOT loader (that starts at 00:0000h) and a separate application that is downloaded into FLASH memory at 10:0000h. The BOOT loader redirects the interrupt vectors as suggested in C166: INTERRUPT VECTOR REDIRECTION. The BOOT loader application calls 10:0000h to transfer control to the loaded application.

The suggestion in C166: GENERATING A CALL TO AN ABSOLUTE MEMORY LOCATION was used to invoke the downloaded application. This application contains its own startup code and is completely independent of the BOOT loader.

Is this the proper procedure to follow and are there any other things I should consider?

ANSWER

This implementation source correct for the BOOT loader. However, you must configure the downloaded application correctly. Here are a few items to check:

  1. Make sure you enter the address range of the external Flash ROM under Options for Target - Target - External Memory. For example: #1 ROM Start: 0x100000 Size: 0x80000.
  2. Make sure Options for Target - L166 Locate - Use Memory Layout from Target Dialog is enabled. This configures the correct CLASSES directive for the L166 Linker/Locater.
  3. Since you redirect the interrupt vectors in the BOOT loader, the downloaded application must be configured so that the interrupt vector table starts at address 0x100000. Enter 0x100000 under Options for Target - L166 Misc - Interrupt Vector Table Address.

MORE INFORMATION

SEE ALSO

Article last edited on: 2005-08-03 10:12:39

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential