27 GRAPHICS ENGINE (GE)
S1C33L26 TECHNICAL MANUAL
Seiko Epson Corporation
27-21
Suspending via software
Writing 1 to GE_STOP/GE_CTL register can forcibly stop executions. The GE stops executing after the
current command being executed has finished.
Suspending by fetching an undefined command
The GE stops executing when it fetches an undefined command.
Termination by an unexpected operation
The GE stops executing a command list when it cannot continue for some reason. In this case, the GE must
be reset (hot reset).
An interrupt can be generated upon completion of a command list execution. To identify the cause that has
terminated command execution, read EXE_END[2:0]/GE_IF3 register in the interrupt handler routine. EXE_
END[2:0] must be cleared by writing 0x0 or 0xff in byte to address 0x30244a.
Note that termination by a STOP command (EXE_END[2:0] = 0x1–0x4) may be issued after GE starts subse-
quent drawing. The STOP commands may not set GE into idle state, as the next command list is ready to run
due to the GE pipeline process before executing a STOP command.
4.2.1 Cause of Termination
Table 27.
EXE_END[2:0]
Cause of termination
0x7
Unexpected operation
0x6
Undefined command
0x5
Software
0x4
STOP4 command
0x3
STOP3 command
0x2
STOP2 command
0x1
STOP1 command
0x0
Not terminated
(Default: 0x0)
Resuming execution
After a command execution has stopped, the GE_CMD_ADDR register indicates the next command address
that follows the command that has stopped execution except when stopped due to an unexpected operation.
Therefore, writing 1 to GE_RUN resumes execution from that command.
However, when an undefined command termination has occurred due to too many or less arguments, the GE_
CMD_ADDR register may not point to the following command address. Therefore, be sure of the command
start address even if a command execution is stopped due to an undefined command.
Writing 1 to GE_RUN while commands are being executed will be ignored. To resume executing the subse-
quent commands after the current execution stops, write 1 to GE_RUN after an end-of-execution interrupt has
occurred.
Status Check During Execution
27.4.3
The GE provides four status bits, GE_STS, BUS_STS, CALC_STS, and DRAW_STS, in the GE_CTL register.
Read these status bits to check the execution status.
GE_STS
GE_STS indicates whether the GE is executing commands or not. It is set to 1 when the GE starts executing
commands by writing 1 to GE_RUN and is reset to 0 when the GE has finished/suspended drawing operations.
In fact, GE_STS is the result of OR between BUS_STS, CALC_STS, and DRAW_STS.
BUS_STS
BUS_STS indicates the GE bus operation status. It is set to 1 while the GE is fetching a command, reading font
or image data, or writing data to the working area, memory, or USIL. It is reset to 0 upon completion of the
above bus operation.
Note: BUS_STS is set after lapse of 3 cycles from a trigger by GE_RUN. To avoid reading undefined
BUS_STS, insert three or more “nop” instructions after setting GE_RUN to 1.