Академический Документы
Профессиональный Документы
Культура Документы
Any of the enabled features of your programmer can be selected using the
up and down arrow keys or typing the selection letters to the left of the
selection display. Pressing enter will execute the highlighted entry if
it is enabled. The user will be prompted for any additional information
which is required to execute the selected function. Before you can
program a module from an S record file, you must select such a file. If
you try to do a program module function and you have not selected a file,
you will be asked to select one.
The table is the first part of the files which generate S records. The
origin or the table tells the PC program where the on chip RAM should be
configured during the programming process. The choice is made in a manner
which does not conflict with other things in the target system such as
the module to be programmed.
The table provides the starting addresses of user supplied routines and
necessary system values. The parameters passed to the user routines and
expected return values are listed in the help screens of the PROG08. User
routines executed on the target processor are always terminated with a
BGND instructions. This returns control to the PC when the function has
been completed or an error has occurred. If a specified routine is not
provided, a zero entry should be placed in that table location. The PC
software will detect this an not enable that function from the PC.
The .08P files consist of four parts: comments, s records, up to six user
specified functions, and a set of setup commands which are listed below
under SETUP COMMANDS. Lines in the file which start with an 'Sn' are
considered to be s records. S1, S2 and S3 records are allowed. S7, S8 and
S9 termination records are ignored. The address field on the first S
record detected in the file is used as the starting address of target RAM
used by PROG08.
USER=uuuuuuuuuuuuuuuuuuuuuunpppppppppp/llllllll/uuuuuuuu/
where
SETUP COMMANDS
Setup Commands are used to initialize the target CPU when it is not
possible to do so using the enable function which must first be loaded
into target ram before execution. Setup commands appear alone on a
separate line of the .08P file starting in column one. All setup
commands must appear before the first S record in the .08P file or they
will be ignored.
BLOCKING_MASK=mmmmmmmm/
- This command has 23 characters. First it tells the
programmer that only full blocks of data can be
programmed into the device and that blocks must
occur on a block boundary. The mask mmmmmmmm is
used to select those address lines which occur
within a block. For example, blocks of 8 bytes
would have a mask of 00000007. The buffer provided
in the target must in size be an integral multiple
of the blocking size in bytes.
SET_TIMING=nn/
- This command has 14 characters and tells the
programmer that at the end of executing
an enable, it should calculate nn timing parameters.
Enable passes back an address in ix which points to
the timing parameters in target RAM. The number in
each timing word (stored by enable) is multiplied by
a 10 microsecond timing constant and stored back in
the same location.
ADDRESS_PAGING=mmmmmmmm/oooooooo/
- This command has 33 characters and tell the
programmer that some form of address paging is
being used. Under these circumstances, the function
BEFORE_READ must set up the paging configuration
address. The masm mmmmmmmm is used to determine
which bits of the address represent the page
address so that page changes can be detected. The
actual address read is calculated by prog as
(address and not(mmmmmmmm)) + oooooooo.
DELAY=nnnn/ - Causes a delay of nnnn (decimal) milliseconds before
continuing to process the rest of the programming
algorithm header. This can be used to allow a clock
change time to stabilize or a Vpp voltage to rise.
NO_BASE_ADDRESS
or
NO_BASE_ADDRESS=bbbbbbbb/
- The 15 character command version tells the
prog software to use a base address of 0 and not
to ask the user to enter one.
the 25 character version is the same except it
sets the base address to bbbbbbbb.
NO_TIMING_TEST
- This command has 14 characters and tells the
programmer not to evaluate the target processor
speed during the initialization process. Instead,
both timing constants are set to 1. This option is
only used when programming timing functions are not
needed.
WRITE_LONG=llllllll/aaaaaaaa/
- This command has 29 characters. It writes the hex
long llllllll to the hex address aaaaaaaa in the
current space.
WRITE_WORD=wwww/aaaaaaaa/
- This command has 25 characters. It writes the hex
word wwww to the hex address aaaaaaaa in the
current space.
WRITE_BYTE=bb/aaaaaaaa/
- This command has 23 characters. It writes the hex
byte bb to the hex address aaaaaaaa in the current
space.
SRECORD_SECTION_MASK=/aaaaaaaa/
- Especially on smaller devices, there may not be
enough RAM to hold the entire algorithm. The
algorithm can be split into different sections
which get loaded when required for a particular
routine. The way they are split is to change the
higher order address bits according to each
section. The SRECORD_SECTION_MASK is used to mask
off these bits while loading to ram, and also to
determine which part of the srecord to load for
different algorithms. Note that the enable MUST be
in the page with the table.
Example:
ADDR_RANGE=aaaaaaaa/bbbbbbbb/
- Normally the valid flash range is set by the
module_length constant in the algorithm which the
programmer then uses to decide how to display memory
in the code window. If not all memory between
module_address and module_address+module_length is
valid, this command can be used to override the
default functionality and describe to the programmer
what is valid memory which should be displayed and
changed. Note that these addresses are relative to
the base address of the flash. aaaaaaaa is the start
address relative to the base address and bbbbbbbb is
the end address relative to the base address.
REQUIRES_PROG_VERSION=x.xx/
- Sometimes algorithms will require features to be
built into the P&E flash programmer itself. If the
algorithm requires a minimum version number of the
programmer, use this command. The interactive
programmer will give the user a warning if the
programmer version is not greater than or equal to
the version referenced in this command. The
commandline programmer will halt with error 14.
BOUNDARY_MASK=mmmmmmmm/
- This command has 23 characters. It indicates to the
Programmer that when buffering data down to the
target, the data may not cross certain boundaries.
If a value of $FFFFFF80 was used, this would
indicate to the programmer that only 128 byte
sections may be programming at once (aligned on 128-
byte boundaries). This does not mean that the whole
128 bytes need to be programmed, only that
the flash programmer will split the data up to be
programmed in chunks which never cross a certain
boundary. This is very useful for paged memory, or
to adhere to block programming requirements of
certain motorola flash.
SET_SP=0000aaaa/ - Sets the algorithm stack pointer to be aaaa. The is
useful since often the stack pointer is in the
center of the RAM map.
CRC_KEEPOUT_RANGE=aaaaaaaa/bbbbbbbb/
- This command allows the user to specify an address
range that will be ignored when performing the
module CRC calculation. By default TRIM Ranges are
automatically ignored. For devices that have paging
memory, the user must define an unpaged range and
the equivalent paged range. This command must be
preceded by a NO_BASE_ADDRESS=bbbbbbbb command.
aaaaaaaa is the start address relative to the base
address and bbbbbbbb is the end address relative to
the base address.
COMMENTS
Any other lines in the .08P file are considered comments. If the .08P
file is selected, these comments are shown in the window at the bottom of
the PC screen. Comments are ususally place in the file to identify the
target system for which the .08P file was written and what module on the
target system it programs.
The table contains the following long word (32 bit) entries in
exactly the order listed. In addition, the table is assembled
at the starting address at which the on chip RAM will be
configured during execution of PROG08. Furthermore, the table
must be the first thing assembled to insure that it is the
first S record in the .08P file. The entries in the table are:
NAME FUNCTION
____________ ________________________________________________