问题标签 [powerpc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5090 浏览

assembly - 便宜的 PowerPC 评估板?

我一直在尝试学习嵌入式软件开发一段时间(从事软件工作近 15 年,10 年使用 Java,加上大学时对 C/C++/X86 Asm 的良好了解。)刚开始使用基于 PIC 的评估板踢。

我工作的地方有一个部门。他们不时在嵌入式系统上有一些空缺。他们寻找的一件事是具有 PowerPC 架构的经验。

我在 interweebz 上查看了带有 PowerPC 芯片的廉价评估板,但我发现的只是 400-1000 美元及以上的板。我想知道是否有一种便宜的方法可以在 PowerPC 架构上学习嵌入式系统,因为我见过其他架构的评估板,价格只是这个范围的一小部分。

或者,如果是评估。板不能以可承受的价格提供,至少是一个便宜的平台,可以在其中练习 PowerPC 组装中的编程(即使它没有嵌入。)

有人可以提出一些建议吗?

哦,如果你能推荐一些关于 PowerPC 架构和编程的书籍,那也太好了。

0 投票
3 回答
1467 浏览

floating-point - 将 powerpc 移植到英特尔的数字代码使用浮点数给出不同的结果

我的基本问题是如何使 x86 上的浮点运算表现得像 PowerPC,从 Classic MacOS (CodeWarrior) 到 Windows (VS 2008)。

有问题的代码有很多,有一堆算法,这些算法高度迭代并且对数值非常敏感。

典型的复杂线是:

它是使用 typedef'dfloat作为基本类型编写的。

更改为double在两个平台上得到非常相似的结果,但不幸的是这些数字是不可接受的,所以我们不能采取那么简单的方法。

Mac 代码是使用 CodeWarrior 编译的,只是关闭 FMADD 和 FMSUB 指令的生成对创建的数字产生了巨大影响。因此,我的出发点是搜索看起来最相似的 Visual Studio (2008) 选项 - 确保使用了 fused add。我们怀疑关键在于编译器在计算中分配中间存储的行为

目前,通过启用 SSE2 和/fp:fast. 启用内在函数会导致值偏离 Mac 值。

/ fp开关文档说只/fp:strict关闭融合添加行为。

MSDN谈到“在 LIBC.LIB、LIBCMT.LIB 或 MSVCRT.LIB 之前”链接 FP10.OBJ。保证64位精度。我显然已经通过在链接器输入字段上指定 FP10.OBJ 来实现这一点(详细的链接器输出在 MSVCRTD.lib 之前显示它)。

我还通过调用设置了 64 位精度

在 DllMain 中。

请注意,问题不是由于平台之间浮点异常处理的差异,也不是由于 PowerPC 允许除以零整数(仅返回零)的(令人愉快的)方式,因为这些区域已经过审计和解决,非常感谢PC-皮棉。该程序运行并产生了一些看似合理的输出,但还不够好。

更新:

一位朋友的有趣评论: 一种可能是 PPC 有大量临时寄存器,可以存储 64 位中间值,而 x86 代码可能必须卸载和重新加载 FPU(截断到 4 个字节并丢失精度)。

这可能是 SSE2 工作得更好的原因,因为 (IIRC) 它有更多的寄存器和更多的保留中间值的空间。

一种可能性 - 您的代码可以编译为 64 位吗?x64 模式还有更多的中间寄存器,以及更好的 FP 指令,因此在设计和执行上可能更接近 PPC。

正如他所建议的那样,使用 64 位构建的初始测试实际上更接近了(我最初认为它过头了,但这是由于建模设置不正确造成的)。

最终决议

我敢肯定,任何对这个话题感兴趣的人都足够痴迷,他们想知道这一切最终是如何解决的。该软件已完成并提供一致的数字结果。我们永远无法获得所有算法来为 Mac 提供相同的结果,但它们足够接近,可以在统计上接受。鉴于处理是由专家用户选择感兴趣的区域指导的,并且用户输入对模型的进展有部分反应,首席科学家认为这是可以接受的(这不是一夜之间的决定!)。剩余的数字差异完全在决定不同临床结果的范围内,因此在测试中没有看到不同的诊断。

0 投票
1 回答
161 浏览

linux-kernel - 我应该在 linux > 2.6.28 上使用什么而不是 __arch__swab32

我不断收到内核模块的编译错误:

PowerPC,2.6.30.x,Kamikaze 工具链。据此,标识符在 2.6.28 之后消失了。我应该改用什么?

0 投票
1 回答
1218 浏览

linux - ldd 在 x86 Linux 上显示不同的地址

ldd用来展示 Fedora/x86 上的动态库,每次使用它都会显示不同的结果。

这是预期的吗?或者有解释吗?

我记得它在 PPC/Linux 上显示了一个固定的结果。

0 投票
1 回答
198 浏览

iphone - Bonjour 网络是否适用于运行 10.4 的 ppc?

我为 Mac 10.5 桌面开发了一个应用程序,它使用 Bonjour 服务通过 wifi 与 iPhone 通信,它在 Mac 10.5 上运行良好,并且能够使用 bonjour 通过 wifi 与 iPhone 进行所需的同步。

但是相同的桌面应用程序(尽管我为 ppc 10.4 重新编译并且编码有一些更改,例如需要删除 @property 等)在运行 10.4 的 ppc 上不起作用。

我在这两种情况下都尝试过: 1. 让桌面为服务器,iPhone 将找到服务,由桌面发布 2. 让 iPhone 为服务器,桌面将找到服务,由 iPhone 发布

但在这两种情况下,我都没有成功,要么桌面无法发布服务,要么无法找到服务。

请让我知道,如果您也遇到过这种类型的错误并在其中找到了一些解决方案。另外,如果您需要更多解释,请问我。

谢谢, 桑尼夫

0 投票
2 回答
13417 浏览

macos - Mac OS X 10.5 App“此架构不支持”通过复制治愈?

我有一个通过 Internet 自行更新的应用程序,更新后的副本无法在运行 Leopard (10.5.8) 的 PowerPC 机器 (G5) 上运行。双击应用程序会产生一条消息,提示“您无法打开应用程序“ appname ”,因为此架构不支持它。” 但这是奇怪的部分:如果我使用 Finder 或使用cp -R命令复制应用程序,那么副本运行良好!然而,如果我ls -laeR在两个应用程序上都这样做,结果是相同的。我重新启动了机器,两个副本之间的差异仍然存在。

有时,重命名应用程序使其运行。经过几次尝试,我设法将其重命名回原来的名称,并且仍然可以运行。

如果这只是在一台机器上,我会认为它是磁盘损坏、宇宙射线或巫毒十六进制,但它是由客户报告的,然后我在自己的机器上复制了它。

任何想法可能导致这种行为?

0 投票
3 回答
1304 浏览

assembly - PowerPC 上的条件移动

PowerPC(32 或 64)指令集是否有条件移动等效?显然可以使用条件分支来模拟它,但我想要一些优于它的东西。

0 投票
1 回答
951 浏览

gcc - powerpc-eabi-objcopy 创建 1GByte 文件

我的 elf 文件大约 1MByte,包含所有调试符号。当我尝试使用“powerpc-eabi-objcopy -O binary out.elf out.bin”创建二进制文件时,out.bin 的大小为 1GByte。

构建脚本如下所示

关于这个问题的任何想法?

谢谢,

弗里德里希

0 投票
4 回答
1078 浏览

assembly - 如何指定 x86 和 PowerPC 指令的执行时间?

我必须估计 PowerPC 和 x86 汇编代码的执行时间。我知道我无法准确计算它取决于许多问题(当前处理器状态 - x86 处理器决定微指令中的内部指令,内存访问时间从缓存中获取代码从较慢的内存等。 )。

我在英特尔优化参考(附录 C)中找到了一些信息,但它没有提供有关所有通用指令的信息。有没有关于它的完整参考?

PowerPC 处理器呢?我在哪里可以找到这样的信息?

0 投票
2 回答
3007 浏览

linux - QEMU 是否适合在 ARM 和 PowerPC 的汇编程序中学习编程?

我想学习 PowerPC 和 ARM 的汇编程序编程,但我无法为此购买真正的硬件。我正在考虑为此使用QEMU。但是我不确定它是否足够好地模拟这两种架构,我会在本机汇编程序中编译和运行我的程序吗?