| 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.
|