XP Embedded 蓝屏错误 Stop 0x0000007B

XP Embedded 蓝屏错误 Stop 0x0000007B

翻译:Bill Zhong
日期:2007-8
学术交流,版权归原著所有

在开发嵌入式Windows XP Embedded时,其中最常遇到的问题是蓝屏,具体错误码是:"Stop 0x0000007B".虽然Windows XP Embedded高级使用书中,关于"提示和技巧"章节中有列出关于它的解决方案,但由于解释不详细,结果造成开发人员仍然碰到这个问题.

错误的发生原因是:镜像缺少必需的驱动,如:PCI总线驱动,磁盘驱动,或IDE控制器驱动,许多开发人员开始XPe开发过程中是使用DOS版本的目标分析器--ta.exe,而不使用tap.exe.通常开发人员选择使用ta.exe有几个原因:如果在目标设备加载Windows XP Pro是耗费时间事情;物理/硬件上无法在目标设备安装Windows XP Pro系统,或者不可能运行WinPE(预安装环境);ta.exe就像是一个pci sniffer程序. 它会检查CPU总线,基本硬件电路,并搜集bios的资料,保存为PMQ文件. tap.exe是进一步检测Windows XP或2000的注册表,判断操作系统加载什么样的驱动.问题原因是ta.exe.它并不收集操作系统启动时所需要的所用组件.

我的理解错误发生时,当操作系统切换时是从实模式转向保护模式.操作系统必须从启动机器保护模式加载设备.现在的PC是经过PCI桥芯片访问设备控制器.如果镜像没有正确的PCI驱动或其它磁盘设备驱动,那么系统会出现蓝屏.

ta.exe没有找到一些组件,如下:
 PCI standard host CPU bridge
 PCI standard ISA bridge
 Plug and Play Software Device Enumerato
 Primary IDE Channel
 Secondary IDE Channel
 Disk Drive
 Standard Dual Channel PCI IDE Controller 
 Standard IDE/ESDI Hard Disk Controller
一些特殊的OEM总线主控制IDE或SATA控制器组件,也可能是错误的成因(罪魁祸首)

最好的方法收集所有必需的组件是在安装Windows XP Pro目标机器下运行tap.exe. 另一种较好的解决方法就是拿XPe的第一张CD启动到WinPE并运行tap.exe.你应该注意到WinPE系统有局限性,因为WinPE镜像并不包含所有的驱动程序,因而在WinPE不会像Windows XP Pro捕获所有组件.例如WinPE系统是没有USB或1394客户端驱动,但你会得到启动操作系统所需的组件.如果你只需要MS-DOS,,如果能解决这个问题,然后再尝试上列的组件.

SATA设备-曾有报道指出,混合不同版本RAID控制器卡的SATA设备也可以导致一个0x7B停止状态.务必确保SATA设备和控制器卡版本兼容.

如果各退一步说,要证明XPe运行体系,在编译一个镜像所需要用MinLogon Sample 宏或WinLogon Sample 宏组件,但这些组件不会出现在ta.exe的结果.这两个宏组件是运行任何系统,编译镜像所需的基本组件.

 

由于水平有限,恕有错漏或错误,恳请大家不吝指正.

 

英文原著

SJJ Embedded Micro Solutions Version 1.3
Copyright © 2005 SJJ Embedded Micro Solutions, LLC., All Rights Reserved.
www.sjjmicro.com
11/01/06 1
The Blue Screen Stop 0x0000007B Error in XP Embedded
By Sean D. Liming
Managing Director
SJJ Embedded Micro Solutions
March 2005
V1.2 Updated: October 2005
V1.3 Updated November 2006

One of the most common problems that first-time developers run into is the Blue Screen Stop 0x0000007B error. Although the book Windows XP Embedded Advanced has the solution listed in the Tips-and-Tricks chapter, the explanation is not as detailed as it could be, and developers still run into the problem.

The error is occurring because a driver is missing from the image such as a PCI bus driver, disk driver, or IDE controller driver. Many developers start the XPe development process using the DOS version of Target Analyzer – TA.EXE instead of TAP.EXE. There are many reasons why developers go the TA.EXE route: loading Windows XP Pro on the target is time consuming, it is physically not possible to install Windows XP Pro on the target, or running WinPE is not possible.TA.EXE is like a PCI sniffer program. It will check the CPU bus, basic hardware ICs, and the
BIOS to gather information for the PMQ file. TAP.EXE goes a little further by checking Windows XP’s or 2000’s registry to see what drivers have been loaded by the OS. The issue is with TA.EXE. TA.EXE doesn’t gather all the components needed to boot the operating system.

My understanding is that the error occurs when the OS is switching from real mode to protected mode. The OS is loading the drivers necessary to access the boot drive in protected mode. Today’s PCs access the drive controller via PCI bridge chips. If the correct PCI driver or other disk device drivers are not in the  image,the system will blue screen.

Some of the missing components TA.EXE doesn’t find might be the following:

 PCI standard host CPU bridge
 PCI standard ISA bridge
 Plug and Play Software Device Enumerator
 Primary IDE Channel
 Secondary IDE Channel
 Disk Drive
 Standard Dual Channel PCI IDE Controller
 Standard IDE/ESDI Hard Disk Controller
 Microsoft ACPI-Compliant System (if the system is an ACPI compliant system, i.e.
contains the ACPI Multiprocessor PC, ACPI Uniprocessor PC, or Advanced Configuration and Power Interface (ACPI) PC components)

A specific OEM BUS master IDE or SATA controller component might also be the culprit. You will have to review you board manufactures documentation and driver CD for more information.

The best way to gather all the necessary components is to install Windows XP Pro on the target systems and run TAP.EXE. The next best solution is to use XPe’s CD1 and boot to WinPE and run TAP.EXE. You should note that there are limitations with WinPE, since not all the drivers are in the WinPE image, thus TAP under WinPE would not capture all the components that TAP under Windows XP Pro would capture. For example USB or 1394 client drivers are not in WinPE,but you would get the components needed to boot the OS. If you only have MS-DOS, then try adding the components listed above to see if that solves the problem.

SATA drives – There have been reports that mixing different version of SATA drives with different RAID controller cards can also lead to a stop 0x7B condition. Make sure the controller versions on the SATA drive and the controller card are compatible.

If all else fails and to prove that XPe runs on the system, build an image using either MinLogon Sample Macro or WinLogon Sample Macro components and don’t include the TA.EXE results.These two macro component have the basic components to build an image that will run on any system.

Windows is a registered trademark of Microsoft Corporation.v

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值