I. Introduction
Usually an 8051 application program is not running correctly from scratch,
and it is not quite easy to debug it without a suitable test equipment.
It is very inconvenient, to burn the program into an EPROM after every
change. Instead it would be nice to load the program into the external
RAM of the target board and then start it. This would dramatically speed
up the turn-around cycles. However, three problems must be solved first:
- There must be a suitable interface to transmit the application
program from the host (PC) to the target (8051) system.
- The target board needs a suitable firmware that can receive a program
from the host computer, store it in the external RAM, and finally
execute it.
- Once loaded, the application program must be executable, although
it is stored in the external RAM, which is usually mapped into the
XDATA address space.
(Programs can only be executed in the CODE address space!)
The corresponding three solutions are:
- an RS-232 interface between the PC and the 8051 board
- a bootstrap program
- external RAM that is mapped into both the CODE and XDATA address space
Nearly all evaluation boards for 8051 derivatives are meeting requirements
1 and 3. In most cases, it is easy to establish a memory map according to
requirement 3, even on target boards that do not originally support it.
(See chapter II.4 Design of MCS-51 Evaluation Boards.)
Requirement 2 can be met by burning a customized version of
BOOT-51 into the EPROM of the target board. After system reset,
it can receive an Intel-HEX file over the serial interface, store it in the
external RAM, and finally jump to the program start address.
BOOT-51 itself doesn't need any external RAM, and requires only
1 kB of EPROM. In principle, it is not restricted to a PC-based host system,
but presently only the host platforms MS-DOS, Windows 9x,
and Linux (i386) are supported.
Sure, a bootstrap program cannot replace a target debugger, but it's a start.