4.4.4 Reading Executive Memory

Reading from executive memory is performed by executing a series of TBLRD instructions and clocking out the data using the REGOUT command.

Table 4-17 provides the ICSP programming details for reading executive memory.

To minimize reading time, the same packed data format that the PE uses is utilized. See Programming Executive Commands for more details on the packed data format.

Table 4-17. Serial Instruction Execution for Reading Code Memory
Command (Binary)Data (Hex)Description

Step 1: Exit the Reset vector.

0000

0000

0000

0000

0000

0000

0000

000000

000000

000000

040200

000000

000000

000000

NOP

NOP

NOP

GOTO 0x200

NOP

NOP

NOP

Step 2: Initialize the TBLPAG register and the Read Pointer (W6) for the TBLRD instruction.

0000

0000

0000

0000

0000

0000

0000

000000

000000

000000

040200

000000

000000

000000

NOP

NOP

NOP

GOTO 0x200

NOP

NOP

NOP

Step 2: Initialize the TBLPAG register for writing to the latches.

0000

0000

200FAC

8802AC

MOV #0xFA, W12

MOV W12, TBLPAG

Step 3: Initialize the Write Pointer (W7) and store the next four locations of code memory to W0:W5.

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

EB0380

000000

BA1B96

000000

000000

000000

000000

000000

BADBB6

000000

000000

000000

000000

000000

BADBD6

000000

000000

000000

000000

000000

BA1BB6

000000

000000

000000

000000

000000

BA1B96

000000

000000

000000

000000

000000

BADBB6

000000

000000

000000

000000

000000

BADBD6

000000

000000

000000

000000

000000

BA0BB6

000000

000000

000000

000000

000000

CLR W7

NOP

TBLRDL [W6], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDH.B [W6++], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDH.B [++W6], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDL [W6++], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDL [W6], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDH.B [W6++], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDH.B [++W6], [W7++]

NOP

NOP

NOP

NOP

NOP

TBLRDL [W6++], [W7]

NOP

NOP

NOP

NOP

NOP

Step 4: Output W0:W5 using the VISI register and REGOUT command.

0000

0000

0001

0000

0000

0000

0001

0000

0000

0000

0001

0000

0000

0000

0001

0000

0000

0000

0001

0000

887E60

000000

<VISI>

000000

887E61

000000

<VISI>

000000

887E62

000000

<VISI>

000000

887E63

000000

<VISI>

000000

887E64

000000

<VISI>

000000

887E65

000000

<VISI>

000000

MOV W0, VISI

NOP

Clock out contents of the VISI register.

NOP

MOV W1, VISI

NOP

Clock out contents of the VISI register.

NOP

MOV W2, VISI

NOP

Clock out contents of the VISI register.

NOP

MOV W3, VISI

NOP

Clock out contents of the VISI register.

NOP

MOV W4, VISI

Step 6: Repeat Steps 3-5 until all desired code memory is read.