FAQs for ICE-51

The embedded tools company

Search FAQs

PDF document ( 58KB / 20-May-2019 )

Bank Number for Bank File (*.bnk)

Ref: 0114
Which number contains R6 if the bank file is called?

The parameter value in R6 of the bank file contains the number of the requested bank. However, it depends on the used bank logic if R6 contains value 1 for the bank 1. A better description is, that R6 contains the same value as the value of the bank probe input lines for the appropriate bank number. If there is a address translation by the MMU command, R6 could contain 3 for bank 1 depending on the address translation.

Banking using 8051 Ports

Ref: 0049
I have some problems using 8051 ports as a bank register. Do you know reasons for that behavior?

If port pins are used as additional address lines for banking purposes, the address lines must be synchronized to the regular addresses. In other case, nobody can predict when the port pins are valid. Refer to the manufactures 8051 manual.

CPU Internal Memory Externally

Ref: 0010
Can I map the CPU internal memory externally?

No, not recommended.
The CPU internal programm area must be mapped internally because this memory is an on-chip memory. If the 8051 is in microcontroller mode (EA=1), the program area can never be substituted with a memory on the target. The CPU internal data area can not be mapped externally as well, because there is no access to the internal address and data bus in any case.
But what is the difference between memory which is mapped internally or externally? Only off-chip memory (program or/and data area) can be mapped internally (within the emulator provided emulation memory) or mapped externally (to the user provided memory on the target, external the emulator).

Differences Bond-out vs. non Bond-out

Ref: 0008
What is the difference between a bond-out and a non bond-out emulator?

A bond-out chip provides a lot of additional signals and features which simplify the control of a CPU, like the user program stop, entry to the user program and exit from the user program. Basically however, the bond-out chip provides the addresses, data and the control lines of a CPU internal program area (EPROM, PROM, EE_PROM, FLASH_ROM). As an option, all internal peripherals and interrupt sources can be stopped while the user program has been stopped. Additional registers contain information about pending interrupts etc. Some bond-out chips are "Combi-CPUs" which can emulate more than a derivative of the 8051 family.
A non bond-out emulator uses the original chip, which is readily available their local distributor. There are no additional lines and information available about the internal memory area and there is no direct way to stop internal peripherials or to prevent internal interrupt requests during an user program stop. Special workarounds (provided by the emulator) cater for nearly the same comfort as a bond-out solution. Please bear mind that the program area must be external (EA=0).
Conclusion: If you use a 8051 derivative in microcontroller mode (EA=1) and have not got program memory on the target, then you must choose the bond-out solution. This solution supports both methods of operation EA=0 and EA=1. In the other case, if you use only the microprocessor mode (EA=0) with EPROM on the target, you may choose the non bond-out version.

Reset while Real Time Program Execution

Ref: 0064
What can cause error messages while real time program execution, if the RESET line is activated or released?

There is a difference in behavior of the original CPU and the emulator. The emulator does not have a Schmitt-Trigger input like the CPU has. In case of problems, it is recommended to check the RESET line: Are there spikes, heavy noise or is the falling or rising slope of RESET slower than 10 us.

Stop Internal Watch-dog Timer

Ref: 0011
How can I stop the internal watch-dog timer after break?

There are two different ways to stop or to service the internal watch-dog timer for the case, that the watch-dog cannot be disabled by software. It depends on the emulation technique which is used.
If a bond-out chip is used, the customer may choose the IOSTOP option in the SYSTEM control window. After break, all internal peripherals including the watch-dog timer are stopped or inhibited if the option is on.
In a non bond-out system, the watch-dog timer must be serviced after break to prevent a reset. The TRACE32 is able to support any software routines in the background while the emulator has stopped the user programm execution. To achieve that behavior, follow the instruction you will get if you type HELP TASK or on the appropriate pages in the user guide.
This procedure can also be used to keep the emulator active for any interrupt requests after an user programm break.

Trace Internal Registers

Ref: 0009
How do I trace a chip internal data transfer from one register to an other?

Neither a bond-out based nor a non bond-out emulator has access to the internal busses between the registers. Also it is impossible to see any access to or from an internal auxiliary memory area, except the CPU provides special modes. During real time program execution there is no chance to trace these accesses or make decisions depending on the content. During program emulation (not a real time program execution) there are a lot of emulator instructions to verify register or internal memory. As a combination of both, so-called spot breakpoints are available.
Nevertheless the emulator and the analyzer are able to trigger and trace on the access type (e.g. read bit direct) and on the internal addresses of byte direct and bit direct accesses.

Download 8051tir.txt (1.93k)

Copyright © 2019 Lauterbach GmbH, Altlaufstr.40, 85635 Höhenkirchen-Siegertsbrunn, Germany   Impressum     Privacy Policy
The information presented is intended to give overview information only.
Changes and technical enhancements or modifications can be made without notice. Report Errors
Last generated/modified: 20-May-2019