📄 x-ix863.html
字号:
<div class="CellBody"><a name="84790"> </a>Read one word (two bytes) from I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84793"> </a><b class="routine"><i class="routine">sysInLong</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84795"> </a><b>ULONG sysInLong <br> (int port)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84798"> </a>Read one long word (four bytes) from I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84801"> </a><b class="routine"><i class="routine">sysOutByte</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84803"> </a><b>void sysOutByte <br> (int port, char data)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84806"> </a>Write one byte to I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84809"> </a><b class="routine"><i class="routine">sysOutWord</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84811"> </a><b>void sysOutWord <br> (int port, short data)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84814"> </a>Write one word (two bytes) to I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84817"> </a><b class="routine"><i class="routine">sysOutLong</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84819"> </a><b>void sysOutLong <br> (int port, long data)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84822"> </a>Write one long word (four bytes) to I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84825"> </a><b class="routine"><i class="routine">sysInWordString</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84827"> </a><b>void sysInWordString <br> (int port, short *address, <br> int count)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84831"> </a>Read word string from I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84834"> </a><b class="routine"><i class="routine">sysInLongString</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84836"> </a><b>void sysInLongString <br> (int port, short *address, <br> int count</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84840"> </a>Read long string from I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84843"> </a><b class="routine"><i class="routine">sysOutWordString</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84845"> </a><b>void sysOutWordString <br> (int port, short *address, <br> int count)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84848"> </a>Write word string to I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84851"> </a><b class="routine"><i class="routine">sysOutLongString</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84853"> </a><b>void sysOutLongString <br> (int port, short *address, <br> int count)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84857"> </a>Write long string to I/O. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84860"> </a><b class="routine"><i class="routine">sysDelay</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84862"> </a><b>void sysDelay <br> (void)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84865"> </a>Allow enough recovery time for port accesses. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84868"> </a><b class="routine"><i class="routine">sysIntDisablePIC</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84870"> </a><b>STATUS sysIntDisablePIC <br> (int intLevel)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84872"> </a>Disable a Programmable Interrupt Controller (PIC) interrupt level. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84875"> </a><b class="routine"><i class="routine">sysIntEnablePIC</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84877"> </a><b>STATUS sysIntEnablePIC <br> (int intLevel)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84880"> </a>Enable a PIC interrupt level. </div></td></tr><tr valign="top"><td colspan=1 rowspan=1><div class="CellBody"><a name="84883"> </a><b class="routine"><i class="routine">sysCpuProbe</i></b><b>( )</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84885"> </a><b>UINT sysCpuProbe <br> (void)</b> </div></td><td colspan=1 rowspan=1><div class="CellBody"><a name="84889"> </a>Check for type of CPU (i386, i486, or Pentium).<b></b> </div></td></tr><tr><td colspan="20"><hr class="tablerule"></td></tr><tr valign="middle"><td colspan="20"></td></tr></table></p></p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="84892">Breakpoints and the <b class="routine"><i class="routine">bh</i></b><b>( )</b> Routine</a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="84893"> </a>VxWorks for the x86 supports both software and hardware breakpoints. When you set a software breakpoint, VxWorks replaces an instruction with an <b class="symbol_lc">int 3</b> software interrupt instruction. VxWorks restores the original code when the breakpoint is removed. The instruction queue is purged each time VxWorks changes an instruction to a software break instruction. </p><dd><p class="Body"><a name="84894"> </a>A hardware breakpoint uses the processor's debug registers to set the breakpoint. The x86 architectures have four breakpoint registers. If you are using the target shell, you can use the <b class="routine"><i class="routine">bh</i></b><b>(</b> <b>)</b> routine to set hardware breakpoints. The routine is declared as follows:</p><dl class="margin"><dd><pre class="Code2"><b><a name="84895">STATUS bh ( INSTR *addr, /* where to set breakpoint, or */ /* 0 = display all breakpoints */ int task, /* task to set breakpoint; */ /* 0 = set all tasks */ int count, /* number of passes before hit */ int type, /* breakpoint type; see below */ INSTR *addr0 /* ignored for x86 targets */ )</a></b></pre></dl><dd><p class="Body"><a name="84905"> </a>The <b class="routine"><i class="routine">bh</i></b><b>( )</b> routine takes the following types in parameter <i class="textVariable">type</i>:<p class="table"><table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="20"><hr class="tablerule"></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87048"> </a><b class="symbol_UC">BRK_INST</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87050"> </a>Instruction hardware breakpoint (0x1000) </p></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87052"> </a><b class="symbol_UC">BRK_DATAW1</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87054"> </a>Data write 1-byte breakpoint (0x1400) </p></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87056"> </a><b class="symbol_UC">BRK_DATAW2</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87058"> </a>Data write 2-byte breakpoint (0x1500) </p></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87060"> </a><b class="symbol_UC">BRK_DATAW4</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87062"> </a>Data write 4-byte breakpoint (0x1700) </p></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87064"> </a><b class="symbol_UC">BRK_DATARW1</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87066"> </a>Data read-write 1-byte breakpoint (0x1c00) </p></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87068"> </a><b class="symbol_UC">BRK_DATARW2</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87070"> </a>Data read-write 2-byte breakpoint (1d00) </p></td></tr><tr valign="top"><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87072"> </a><b class="symbol_UC">BRK_DATARW4</b> </p></td><td colspan=1 rowspan=1><p class="BodyLeft"><a name="87074"> </a>Data read-write 4-byte breakpoint (1f00)<b> </b></p></td></tr><tr><td colspan="20"><hr class="tablerule"></td></tr><tr valign="middle"><td colspan="20"></td></tr></table></p></p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="84923">Disassembler: <b class="routine"><i class="routine">l</i></b><b>( )</b></a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="84924"> </a>If you are using the target shell, note that the VxWorks disassembler <b class="routine"><i class="routine">l</i></b><b>( )</b> does not support 16-bit code compiled for earlier generations of 80<i class="textVariable">x</i>86 processors. However, the disassembler does support 32-bit code for both the i386 and i486 processors.</p></dl><dd><font face="Helvetica, sans-serif" size="-1" class="sans"><h5 class="HU"><i><a name="84926"><b class="routine"><i class="routine">vxMemProbe</i></b><b>( )</b><b class="routine"><i class="routine"></i></b> </a></i></h5></font><dl class="margin"><dd><p class="Body"><a name="84927"> </a>The <b class="routine"><i class="routine">vxMemProbe</i></b><b>( )</b> routine, which probes an address for a bus error, is supported on the x86 architectures by trapping both general protection faults and page faults.</p></dl></dl><font face="Helvetica, sans-serif" class="sans"><h4 class="H4"><i><a name="89600">a.out-Specific Tools for x86</a></i></h4></font><dl class="margin"><dl class="margin"><dd><p class="Body"><a name="89602"> </a>The following tools are specific to the <b class="file">a.out</b> format for x86 processors and the PC simulator. For more information, see the reference entries for each tool.</p></dl><dl class="margin"><dd><div class="Item"><a name="84933"> </a><b class="command">hexDec </b></div><dl class="margin"><dd><div class="Indent"><a name="84934"> </a>converts an <b class="file">a.out</b>-format object file into Motorola hex records. The syntax is:</div><br><dl class="margin"><dd><pre class="Code3"><b><a name="84935">hexDec [-a <i class="textVariable">adrs</i>] [-l] [-v] [-p <i class="textVariable">PC</i>] [-s <i class="textVariable">SP</i>] <i class="textVariable">file</i> </a></b></pre></dl></dl><dd><div class="Item"><a name="84937"> </a><b class="command">aoutToBinDec</b></div><dl class="margin"><dd><div class="Indent"><a name="84938"> </a>extracts text and data segments from an <b class="file">a.out</b> file and writes it to standard output as a simple binary image. The syntax is:</div><br><dl class="margin"><dd><pre class="Code3"><b><a name="84939">aoutToBinDec < <i class="textVariable">inFile</i> > <i class="textVariable">outfile</i> </a></b></pre></dl></dl><dd><div class="Item"><a name="84941"> </a><b class="command">xsymDec </b></div><dl class="margin"><dd><div class="Indent"><a name="84942"> </a>extracts the symbol table from an <b class="file">a.out</b> file. The syntax is:</div><br><dl class="margin"><dd><pre class="Code3"><b><a name="84944">xsymDec < <i class="textVariable">objMod</i> > <i class="textVariable">symTbl</i> </a></b></pre></dl></dl></dl></dl><a name="foot"><hr></a><p class="navbar" align="right"><a href="index.html"><img border="0" alt="[Contents]" src="icons/contents.gif"></a><a href="GuideIX.html"><img border="0" alt="[Index]" src="icons/index.gif"></a><a href="x-ix86.html"><img border="0" alt="[Top]" src="icons/top.gif"></a><a href="x-ix862.html"><img border="0" alt="[Prev]" src="icons/prev.gif"></a><a href="x-ix864.html"><img border="0" alt="[Next]" src="icons/next.gif"></a></p></body></html><!---by WRS Documentation (), Wind River Systems, Inc. conversion tool: Quadralay WebWorks Publisher 4.0.11 template: CSS Template, Jan 1998 - Jefro --->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -