Service manual

Service Manual
Write command
Options:
Byte operation 00001xx1
Word operation 00001xx0
Increment address at each operation 00001x1x
Repeat operation at same address 00001X0X
Accept new data for each operation 000011XX
Use same data for each operation 000010XX
Data transfer (all 32-bit words):
Operation count (bytes or words to write)
Initial address
Data
Additional data if option bit 2 is set
Checksum fixup
Note that byte data is sent as words, with only the lower
8 bits significant. A fixup value is appended to arrange
that the 32-bit additive checksum of the entire command
data transfer (ie all except the initial command byte) is
zero. If this is not correct, the target will respond with
&FF: if it is correct, the target will respond with a copy of
the command byte. If more than one word was to be
written, it is done at the time of reception: a transfer error
will indicate that incorrect data has already been written.
Read Command
Options:
Byte operation 00010XX1
Word operation 00010XX0
Increment address at each operation 00010X0X
Repeat operation at same address 00010X0X
Report every value read 000101XX
Report only last value read 000100XX
Data transfer, host to target (all 32-bit words):
Operation count (bytes or words to read)
Initial address
Checksum fixup
Command acknowledgement:
Target replies with &FF or echo of command byte
Data transfer, target to host (all 32-bit words):
Data from target to host (one or more words)
Checksum fixup
Checksums for each transfer block are arranged to be
zero, as described in the Write Command, above. Byte
data is sent in the lowest 8 bits of a word, one byte per
transmitted word.
Execute command
The Execute command has only a single word of data
and a checksum. There are no options. The data word
is loaded into R15 exactly as transmitted, so take care
to ensure that processor and interrupt mode flags are
correctly set. The vector execution operations permitted
by the *Go user command are performed by using Read
to read the appropriate value from the vector table and
Go to start execution.
Bus Exercise command
Although you can use the read and write commands to
generate continuous bus cycles with which to exercise
particular peripheral and memory locations, it is not
possible to produce cycles which toggle address or data
bits. The bus exercise command provides a set of small
loops which are reproduced below. The code loop
executed is defined by the option bits in the command
byte. The command is acknowledged (by returning the
command byte to the host) before execution starts. Data
transfer (all 32 bit words)
Operation count (R8)
First address (R9)
Second address (R10)
First data (R11)
Second data (R13)
Checksum fixup
Option 000
loop LDR r11,[r9] ;read-only separate
LDR r12,[r10] ;words
ADDS r8, r8, r7
BCS loop
Option 001
loop LDRB r11,[r9] ;read-only separate bytes
LDRB r12,[r10]
ADDS r8, r8, r7
BCS loop
Option 010
loop STR r11,[r9] ;write and read separate
STR r12,[r10] ;words
LDR r1,[r9]
LDR r2,[r10]
ADDS r8, r8, r7
BCS loop
Option 011
loop STRB r11,[r9] ;write and read separate
STRB r12,[r10] ;bytes
LDRB r1,[r9]
LDRB r2,[r10]
ADDS r8, r8, r7
BCS loop
Option 100
loop LDMIA r9,{r1,r2} ;read-only multiple
LDMIA r10,{r1,r2] ;words
ADDS r8, r8, r7
BCS loop
Option 101
loop LDMIA r9,{r1,r2} ;read-only multiple
LDRB r1,[r10] ;words then single bytes
LDR r1,[r9] ;and single words
ADDS r8, r8, r7
BCS loop
5-16 Issue 2, June 1991 Part 5 - Main PCB fault diagnosis