IBM IEEE 1394黄色感叹号

本文介绍了一种解决XP系统中Texas Instruments OHCI Compliant IEEE 1394 Host Controller出现黄色感叹号的方法。通过安装UbCore提供的最新版驱动,可以避免每次重启后都需要手动启用设备的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天从EBAY德国上淘到一台Z61P,重新装了XP SP2,按照流程装好所有驱动,一切都ok,唯独开机Texus OHCI 1394在硬件上显示黄色感叹号,Disable->重新找到就没有问题,但是每次开机都是这样,而在IBM提供的原始系统或者一键恢复都显示没有问题,这下我郁闷了。。。上网一看,碰到这种问题的人还不少,居然没有一个确实的解决方案,我研究了一下,黄天不负有心人,哈哈,终于还是给我搞定了:

症状:设备管理器里的IEEE 1394 总线控制器
Texas Instruments OHCI Compliant IEEE 1394 Host Controller

刚开机后 前面有黄色的感叹号 设备无法正常启动

如果把它先停用再启用 就会听见windows设备连接的声音响了一下 就正常了

不知道是什么原因,不影响日常使用,但有个感叹号总是不正常的
而且只是出现在新装系统,原IBM系统没有问题

“黄色的感叹号” 解释:1394在XP下面的网络功能,是需要经过微软认证的,也就是XP需要识别卡上的一个识别码,而这种方式,是1394协会与微软共同制定的,一般来说1394的厂商需要到1394协会去申请ID号码,当然需要付一定的费用,然后把这个ID烧在1394卡上。大部分的1394厂商,都不会提供这个号码,那XP就理所当然不会去开启网络功能,而是给一个叹号出来。不过,这个功能能不能用,并不影响1394的视频功能,可以放心使用。

解决方案:
1. 不理踩,反正我不用的少。 ^^
2. 一般情况下 TI 的1394的驱动,Microsoft ,Linux和 Apple 都会开发驱动 最新版本为5.12.0.这个驱动大多数情况下是没有问题的,但是毕竟是Generic 的,不是为TI度身定制的。如果细心的话去TI的主页找驱动,会发现还有一家公司专门开发IEEE1394驱动 -> UbCore 下载连接:
http://www.unibrain.com/Products/DriverAPI/ubcore.html
装上这个驱动后 版本为 5.13.0 比Microsoft还要新,所以不会再次被MS的驱动覆盖,问题彻底解决。

测试:
之后我用外置的LG DVD刻录,Sony DV和ThinkPad连接,全部成功,而且可以看到每一个硬件的ID

推荐和我由同样问题的朋友,可以试一试!
### IBM浮点数与IEEE 754标准之间的转换 #### 转换概述 IBM系统的浮点数表示法不同于现代广泛采用的IEEE 754标准。为了实现两者间的互转,需理解各自的数据结构特点并建立映射关系。 #### IBM浮点数格式解析 IBM370架构下的单精度(32位)浮点数由三部分组成:一位符号S、七位阶码E以及二十四位尾数M[^1]。这里给出的例子中,当S等于0时表示正值;而给定的二进制形式(1000101)₂对应于十进制中的69作为偏置后的实际指数值减去基数得到真正意义下的幂次方数;最后提到的十六进制串代表的是经过特定处理之后的小数部分,在计算过程中需要还原成原始数值再乘上相应的权重因子完成整个实数重建工作。 #### IEEE 754格式说明 相比之下,IEEE 754定义了一套更为通用且精确度更高的浮点运算规则。对于同样长度为32比特的情况而言,它分配了1个bit用于标记正负号sign bit(S),接着是8bits来表达经过去偏移量调整过的真实指数exponent(E')加上固定的偏差bias形成最终储存版本exp=E'+Bias;剩余23bits则用来记录规范化后去掉前导'1.'之前的纯小数fraction(M)[^2]。 #### 实现转换的具体步骤 要将上述IBM格式转化为符合IEEE规范的形式,可以遵循以下逻辑操作: - **提取各组成部分**:依据输入参数分离出对应的s,e,m字段; - **修正指数域**:考虑到不同体系间存在的差异性,应当重新校准e使之适应新的范围设定; - **重组mantissa片段**:由于存在隐含整数位的区别,所以m也需要做适当变换才能匹配目标模式的要求; - **组合新序列**:按照IEEE规定的顺序拼接各个要素构成完整的机器字节流。 下面是一份简单的C++代码示例展示了如何执行这种转变过程: ```cpp #include <bitset> #include <cmath> union IbmToIeee { struct { uint32_t mantissa : 24; uint32_t exponent : 7; uint32_t sign : 1; } ibm; float ieee; }; float convert_ibm_to_ieee(uint32_t raw_IBM_float){ IbmToIeee converter{raw_IBM_float}; int exp_adjusted = static_cast<int>(converter.ibm.exponent)-64; // Adjusting from IBM bias to unbiased form. double fraction = ldexp(static_cast<double>(converter.ibm.mantissa), -24); union FloatBits{ float f; uint32_t i; }; FloatBits result{}; result.i = ((static_cast<uint32_t>(converter.ibm.sign)<<31)) | (((uint32_t)(exp_adjusted + 127)&0xFF)<<23)| (std::ldexp(fraction,-1)*((1<<23))); return result.f; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值