UNC4672A,V1英文說(shuō)明,ABB模塊
PPCBug包括顯示和修改內(nèi)存的命令,斷點(diǎn)和跟蹤功能,強(qiáng)大的匯編和反匯編程序用于修補(bǔ)程序,以及“通電自檢”功能驗(yàn)證主CPU板的完整性。各種PPCBug例程處理輸入/輸出、數(shù)據(jù)轉(zhuǎn)換和字符串函數(shù)的通過(guò)系統(tǒng)調(diào)用處理程序執(zhí)行的程序。PPCBug由三部分組成部分:
? 命令驅(qū)動(dòng)的用戶交互軟件調(diào)試器,也稱為PPCBug。
? 一組命令驅(qū)動(dòng)的診斷?!?br/>
? 接受系統(tǒng)控制臺(tái)命令的用戶界面航空站
UNC4672A,V1英文說(shuō)明當(dāng)使用PPCBug時(shí),您可以從調(diào)試器中的任何一個(gè)進(jìn)行操作目錄(PPC1 Bug)或診斷目錄(PPC1 Diag),其中告訴您當(dāng)前目錄由于PPCBug是命令驅(qū)動(dòng)的,因此它在中執(zhí)行各種操作對(duì)在鍵盤上輸入的用戶命令的響應(yīng)。當(dāng)您輸入命令,PPCBug執(zhí)行該命令,并再次出現(xiàn)提示。但是,如果您輸入的命令導(dǎo)致執(zhí)行用戶目標(biāo)代碼(例如,GO),則控制可能返回或不返回到PPCBug,取決于用戶程序的結(jié)果??刂屏鞒蘌PCBug在PPCBug固件包用戶手冊(cè)中進(jìn)行了描述,附錄D中列出了相關(guān)文件。PPCBug類似于以前的摩托羅拉固件調(diào)試包(MVME147Bug、MVME167Bug、MVME187Bug),存在差異微處理器架構(gòu)。這些主要反映在指令助記符、寄存器顯示、的尋址模式匯編器/反匯編器,并將參數(shù)傳遞給系統(tǒng)調(diào)用。內(nèi)存要求PPCBug總共需要768KB的讀/寫內(nèi)存(例如,DRAM)。調(diào)試器從內(nèi)存頂部分配此空間。對(duì)于例如,一個(gè)包含64MB(04000000美元)讀/寫內(nèi)存的系統(tǒng)將PPCBug內(nèi)存頁(yè)放置在位置$03F80000到$03FFFFFF。實(shí)施
PPCBug主要用C編程語(yǔ)言編寫,提供可移植性和可維護(hù)性的好處。必要時(shí),組裝語(yǔ)言以單獨(dú)編譯程序的形式使用僅包含匯編代碼的模塊。沒(méi)有混合語(yǔ)言模塊習(xí)慣于物理上,PPCBug包含在兩個(gè)32針插口PLCC閃存中一起提供1MB存儲(chǔ)的設(shè)備??蓤?zhí)行代碼為每次通電或重置固件條目時(shí)的校驗(yàn)和,以及結(jié)果(包括閃存設(shè)備中包含的預(yù)計(jì)算校驗(yàn)和),根據(jù)預(yù)期校驗(yàn)和進(jìn)行驗(yàn)證。
PPCBug includes commands for display and modification of memory,
breakpoint and tracing capabilities, a powerful assembler and disassembler
useful for patching programs, and a “self-test at power-up” feature which
verifies the integrity of the main CPU board. Various PPCBug routines
that handle I/O, data conversion, and string functions are available to user
programs through the System Call handler. PPCBug consists of three
parts:
? A command-driven user-interactive software debugger, also called
PPCBug.
? A set of command-driven diagnostics.”
? A user interface which accepts commands from the system console
terminal.
When using PPCBug, you operate from within either the debugger
directory (PPC1-Bug) or the diagnostic directory (PPC1-Diag) which
tells you the current directoryBecause PPCBug is command-driven, it performs its various operations in
response to user commands entered at the keyboard. When you enter a
command, PPCBug executes the command and the prompt reappears.
However, if you enter a command that causes execution of user target code
(for instance, GO), then control may or may not return to PPCBug,
depending on the outcome of the user program. The flow of control in
PPCBug is described in the PPCBug Firmware Package User’s Manual,
listed in Appendix D, Related Documentation.
PPCBug is similar to previous Motorola firmware debugging packages
(MVME147Bug, MVME167Bug, MVME187Bug), with differences due
to microprocessor architectures. These are primarily reflected in the
instruction mnemonics, register displays, addressing modes of the
assembler/disassembler, and the passing of arguments to the system calls.
Memory Requirements
PPCBug requires a total of 768KB of read/write memory (for example,
DRAM). The debugger allocates this space from the top of memory. For
example, a system containing 64MB ($04000000) of read/write memory
will place the PPCBug memory page at locations $03F80000 to
$03FFFFFF.Implementation
PPCBug is written largely in the C programming language, providing
benefits of portability and maintainability. Where necessary, assembly
language has been used in the form of separately compiled program
modules containing only assembler code. No mixed-language modules are
used.
Physically, PPCBug is contained in two socketed 32-pin PLCC Flash
devices that together provide 1MB of storage. The executable code is
checksummed at every power-on or reset firmware entry, and the result
(which includes a precalculated checksum contained in the Flash devices),
is verified against the expected checksum.