Home

Search Full Website

Search Knowledge Base

Knowledge Base Index

Email Support Question

 


MetaICE XF Bank Switching

Question 

Can the MetaICE XF emulator do bank switching?

Answer

Yes, the MetaICE XF emulator supports bank switching. The Model 400 XF emulator can support up to 256 Kb of Code Memory bank switching and up to 256 Kb of External Data Memory bank switching and the Model 600, 700 and 800 XF emulators can support up to 1 Mb of Code Memory bank switching and up to 1 Mb of External Data Memory bank switching. To support this, there are posts on the edge of the emulator mother board (the middle board) labeled A16 and A17 (and A18 and A19 for Model 600, 700 and 800 emulators). You must connect leads from your application hardware to these posts to drive the address lines.

You can activate bank switching in one of two ways. Depending on the software tools you are using, activating bank switching may be "automatic" or "manual".

Automatic Bank Switching

If you are using bank switching aware tools from Keil or IAR Systems "automatic" bank switching is available. In this case you tell the compiler/linker where the banks are located, which modules go into which banks and how the bank switching is controlled in your hardware (e.g., which bits in which port supply the address extension lines and how many address extension lines there are). With this information, the linker automatically inserts calls to your bank switching code as necessary (e.g., a call from a routine in Bank #0 to a routine in Bank #2). This information is passed on to the "executable" file. The presence of certain records in the file tell the emulator software what the banking structure is and where all the code for the banks should go. This single file contains all the code, symbols and source line number and data type information for all the banks, as well as all the control information describing the banks. You only need to load this file, using the File|Load command in the emulator software, to activate bank switching support in the emulator.

Manual Bank Switching

In the "manual" variety of bank switching support, you can build your application using any software tools. In this case you create a separate absolute "executable" file for each bank of code memory. You must also supply your own bank switching routine. Most importantly, you must be acutely aware of which routines are in which bank and "manually" switch banks to call routines resident in a bank other than the current bank. Note that the addresses embedded in each of the loadable files are in the address range 0 (0x0000) through 0xFFFF (64K-1). MetaLink's emulator software needs some additional information to let it know where each bank is physically located in your application hardware and which loadable file goes into which bank. The Bank Definition File (BDF) provides this information. You create the BDF describing your application hardware and software environment only once. Then you load the BDF, using the File|Load command in the emulator software, to activate bank switching support in the emulator. Loading the BDF causes the emulator software to load all the designated loadable file into the appropriate banks. 

A sample BDF file is included in the examples folder installed when the emulator software was installed.


Home
   Products   Downloads   Support   Contacts   Search  Legal


Copyright © 1999-2008 MetaLink Corp.