科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件简介 PLAYSTATION 3 上的 Linux(五)

简介 PLAYSTATION 3 上的 Linux(五)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

作为第 3 个参数传递到 spe_create_thread 的指针会以 program_data_ea 的形式进入这个程序。EA 表示有效地址,这是从主 PPE 程序中看到的主存地址。

作者:中国IT实验室 来源:中国IT实验室 2007年9月12日

关键字: 简介 系统 Linux

  • 评论
  • 分享微博
  • 分享邮件

   后续文章将更加深入地介绍 SPU 编程的知识,这里只简单介绍一下。作为第 3 个参数传递到 spe_create_thread 的指针会以 program_data_ea 的形式进入这个程序。EA 表示有效地址,这是从主 PPE 程序中看到的主存地址。由于 SPE 不能直接访问主存,所以无法直接将其作为一个指针废弃。相反,您必须发起一个传输请求将数据复制到本地存储中。一旦数据保存到本地存储中,就可以通过 本地存储地址(local store address,有时简写为 LSA) 来访问这些数据。

    mfc_get 发起到本地存储的传输。注意在 PPE 和 SPE 中,这个结构被对齐为 16 字节,并填充成 16 个字节。在下一篇文章中我们将更详细地介绍这方面的内容,但是对于大部分 DMA 传输来说,都必须 按照 16 字节边界对齐,并且大小应该是 16 字节的整数倍。tag_id 让您可以检索 DMA 操作的状态。在传输之后,接下来的两个函数可以导致程序等待,直到传输完成为止。

    主要的处理过程非常简单 ―― 只需用速度乘以时间即可。在数据处理完之后,mfc_put 会发起一个传输,传回主存,接下来的两个函数会让您等待 DMA 操作完成。当所有这些操作完成之后,程序退出。

现在您需要编译并运行这个程序。这实际上非常简单:

#Compile the SPE program
spu-gcc spe_distance.c -o spe_distance
#Embed the SPE program into an ELF object file, and expose it
#through the global variable: calculate_distance_handle
embedspu calculate_distance_handle spe_distance spe_distance_csf.o
#Compile the PPE program together with the SPE program
gcc ppe_distance.c spe_distance_csf.o -lspe -o distance
#Run the program
./distance

现在您就拥有了一个可以良好运行的 Cell BE 程序。

结束语

    尽管您不能直接在 PS3 上编程,但是 PS3 支持第三方的操作系统,这就让您可以将 Linux 安装到 PS3 上。将 Linux 安装到 PS3 上需要您付出一点努力,但这很值得,因为最终您将获得一个低成本并能良好运行的 Cell BE 处理器。本系列的后续文章将深入介绍 Cell BE 编程以及如何充分利用可从 SPE 获得的每一点速度。

参考资料

  • 您可以参阅本文在 developerWorks 全球网站上的 英文原文

  • 要购买 Yellow Dog Linux 5,请访问 Terra Soft Solution 的 Web 站点(您也可以在公共镜像网站上获得)。

  • 从 YDL 的 Web 站点上获得 bootloader。请确保将这个文件命名为 “otheros.bld”。

  • 从 Sony 的 Web 站点上获取 Other OS Installer。请确保将这个文件命名为 “otheros.self”。

  • 对于那些希望通过模拟输出将 PS3 连接到显示器上的用户来说,这条线缆 声称可以实现这种功能,而且价格很低(我自己还没有测试这个线缆,因此无法评论它的品质)。

  • 简短的 YDL 安装手册 也可以供您参考。

  • YDL Web 站点上有一个关于 PS3 上的视频支持 的页面。

  • Fedora Core 5 也可以安装到 PS3 上,不过还没有官方的支持。要安装 Fedora,您需要 Fedora Core 5 PPC Install DVDFC5 PS3 AddOn DVD 以及 安装说明。还需要注意 AddOn DVD 所提供的 Cell SDK 有针对 PPE 的 gcc(名为 ppu-gcc)及 embedspu 实用工具(名为 ppu-embedspu)。

  • Gamasutra 还有另外一个 introduction to programming the PS3 on Linux。不过,它使用了函数 copy_from_ls,这个函数并未包括在 SDK 中,只能在 IBM 与 Cell BE 模拟器一起销售的代码样例中找到。

  • IBM Cell BE 资源中心 包括了很多有关 PPE、SPE、EIB 以及更多内容的文章的链接。

  • IBM 还专设了一个空间来放置 全部 Cell BE 文档

关于作者

Jonathan Bartlett 是 Programming from the Ground Up 一书的作者,这本书介绍的是 Linux 汇编语言编程。Jonathan Bartlett 是 New Media Worx 的技术总监,负责为客户开发 Web、视频、kiosk 和桌面应用程序。可以通过 johnnyb@eskimo.com 与 Jonathan 联系。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章