编写设备驱动程序

使用串行连接进行测试

使用串行连接是测试驱动程序的一种好方法。使用 tip(1) 命令可在主机系统和测试系统之间建立串行连接。借助此方法,可将主机控制台上的 tip 窗口用作测试计算机的控制台。有关其他信息,请参见 tip(1) 手册页。

tip 窗口具有如下优点:


注 –

尽管调试 Solaris 设备驱动程序时不要求使用 tip 连接和另一台计算机,但仍建议使用此方法。


Procedure针对 tip 连接设置主机系统

  1. 使用主机系统和测试计算机上的串行端口 A 将两台计算机连接起来。

    必须使用空调制解调器电缆建立此连接。

  2. 在主机系统中,确保 /etc/remote 中存在对应于该连接的项。有关详细信息,请参见 remote(4) 手册页。

    终端项必须与使用的串行端口匹配。Solaris 操作系统附带对应于串行端口 B 的适当项,但必须为串行端口 A 添加一个终端项:


    debug:\
            :dv=/dev/term/a:br#9600:el=^C^S^Q^U^D:ie=%$:oe=^D:

    注 –

    波特率必须设置为 9600。


  3. 在主机上的 shell 窗口中,运行 tip(1) 并指定项的名称:


    % tip debug
    connected

    现在,shell 窗口是一个 tip 窗口,具有到测试计算机的控制台的连接。


    注意 – 注意 –

    请勿在主机上使用 STOP-A(针对 SPARC 计算机)或 F1-A(针对 x86 体系结构计算机)来停止测试计算机。此操作实际上会停止主机。要向测试计算机发送中断,请在 tip 窗口中键入 ~#。仅当诸如 ~# 命令的这些字符位于行首才能识别这些命令。如果命令无效,请按回车键或 Ctrl-U 组合键。


在 SPARC 平台上设置目标系统

一种在 SPARC 平台上快速设置测试计算机的方法是在打开计算机之前拔除键盘。然后,该计算机将自动使用串行端口 A 作为控制台。

另一种设置测试计算机的方法是使用引导 PROM 命令使串行端口 A 成为控制台。在测试计算机上,在引导 PROM ok 提示符处,将控制台 I/O 定向到串行线路。要使测试计算机始终以串行端口 A 作为控制台,请设置环境变量 input-deviceoutput-device


示例 22–1 使用引导 PROM 命令设置 input-deviceoutput-device


ok setenv input-device ttya
ok setenv output-device ttya

也可以使用 eeprom 命令使串行端口 A 成为控制台。以超级用户身份,执行以下命令使 input-deviceoutput-device 参数指向串行端口 A。以下示例对 eeprom 命令进行了说明。


示例 22–2 使用 eeprom 命令设置 input-deviceoutput-device


# eeprom input-device=ttya
# eeprom output-device=ttya

eeprom 命令会导致在以后每次系统引导时都将控制台重定向到串行端口 A。

在 x86 平台上设置目标系统

在 x86 平台上,使用 eeprom 命令可使串行端口 A 成为控制台。此过程与 SPARC 平台过程相同。请参见在 SPARC 平台上设置目标系统eeprom 命令会使控制台在重新引导期间切换到串行端口 A (COM1)。


注 –

除非 BIOS 支持控制台重定向到串行端口,否则 x86 计算机在引导过程的早期阶段之前不会将控制台控制权转交给 tip 连接。在 SPARC 计算机中,tip 连接在整个引导过程中都维护着控制台控制权。