MECS CS-1000工控元器件,CS-1000培訓教程
MPCR狀態(tài)代碼MPCR中存儲的狀態(tài)代碼有兩種類型:
? 返回的狀態(tài)(來自187Bug)
? 總線主機設置的命令(某些用戶請求的作業(yè)處理器)
可能從187Bug返回的狀態(tài)代碼為:總線主機可以設置的命令代碼為:
多處理器地址寄存器(MPAR)多處理器地址寄存器(MPAR),位于共享調試器基址的3004美元偏移量的RAM位置將其加載到,包含用于控制的兩個單詞中的第二個處理器之間的通信。
MECS CS-1000工控元器件MPAR內容規(guī)定物理地址(從本地處理器查看),其中
如果MPCR包含G或B、 MPAR組織如下:MPCR通電順序
1.通電時,調試監(jiān)視器自檢例程初始化RAM,包括用于支持多處理器的內存位置(3000美元至3007美元)。2.MPCR在通電時包含$00,表示初始化尚未完成。
十六進制0(十六進制00)--等待。初始化尚未完成。
ASCII R(十六進制52)--就緒。固件監(jiān)視器正在監(jiān)視更改。
ASCII E(十六進制45)--正在執(zhí)行MPAR指向的代碼。
ASCII G(十六進制47)--使用Go Direct(GD)邏輯指定MPAR地址。
ASCII B(十六進制42)--使用Go(G)邏輯識別斷點。
基址+3004美元**3。隨著初始化的進行,執(zhí)行路徑到達“提示”例程。在發(fā)送提示之前,此例程在MPCR指示初始化完成。然后發(fā)送提示。
–如果沒有終端連接到端口,則MPCR仍為輪詢以查看外部處理器是否需要要傳遞給雙端口RAM的控制。–如果終端確實響應,則會輪詢MPCR以獲取在為用戶輪詢串行端口時的相同用途輸入
–由遠程處理器放置在MPCR中的ASCII G指示請求直接傳輸類型。
–MPCR中的ASCII B表示斷點要在控制權轉移之前武裝起來(如圍棋命令)。
在任一序列中,在MPCR中放置一個E以指示就在控制權移交給內存(任何遠程處理器都可以檢查MPCR內容。)4.如果在雙端口RAM中執(zhí)行的代碼要重新輸入調試監(jiān)視器,使用函數(shù)$0063的陷阱#496調用(SYSCALL.RETURN)使用新的顯示提示。
請注意,每次調試監(jiān)視器返回提示時,將R移到MPCR中以指示該控件可以再次傳輸?shù)街付ǖ腞AM位置。
MPCR Status Codes
The status codes stored in the MPCR are of two types:
? Status returned (from 187Bug)
? Command set by the bus master (job requested by some
processor)
The status codes that may be returned from 187Bug are:
The command code that may be set by the bus master is:
Multiprocessor Address Register (MPAR)
The Multiprocessor Address Register (MPAR), located in shared
RAM location of $3004 offset from the base address the debugger
loads it at, contains the second of two words used to control
communication between processors. The MPAR contents specify
the physical address (as viewed from the local processor) at which
execution for this processor is to begin if the MPCR contains a G or
B. The MPAR is organized as follows:
MPCR Powerup Sequence
1. At powerup, the debug monitor self-test routines initialize
RAM, including the memory locations used for multiprocessor support ($3000 through $3007).
2. The MPCR contains $00 at powerup, indicating that
initialization is not yet complete.
HEX 0 (HEX 00) -- Wait. Initialization not yet complete.
ASCII R (HEX 52) -- Ready. The firmware monitor is watching for a change.
ASCII E (HEX 45) -- Code pointed to by the MPAR is executing.
ASCII G (HEX 47) -- Use Go Direct (GD) logic specifying the MPAR address.
ASCII B (HEX 42) -- Recognize breakpoints using the Go (G) logic.
Base Address + $3004 * * 3. As the initialization proceeds, the execution path comes to the
"prompt" routine.
Before sending the prompt, this routine places an R in the
MPCR to indicate that initialization is complete. Then the
prompt is sent.
– If no terminal is connected to the port, the MPCR is still
polled to see whether an external processor requires
control to be passed to the dual-port RAM.
– If a terminal does respond, the MPCR is polled for the
same purpose while the serial port is being polled for user
input.
– An ASCII G placed in the MPCR by a remote processor
indicates that the Go Direct type of transfer is requested.
– An ASCII B in the MPCR indicates that breakpoints are to
be armed before control is transferred (as with the GO
command).
In either sequence, an E is placed in the MPCR to indicate
that execution is underway just before control is passed to
RAM. (Any remote processor could examine the MPCR
contents.)
4. If the code being executed in dual-port RAM is to reenter the
debug monitor, a TRAP #496 call using function $0063
(SYSCALL .RETURN) returns control to the monitor with a
new display prompt.
Note that every time the debug monitor returns to the
prompt, an R is moved into the MPCR to indicate that control
can be transferred once again to a specified RAM location.