28

我之前正在阅读这个答案,它让我有兴趣购买 Nintendo DS Lite 来学习对嵌入式设备进行编程。在我出去购买 DS 之前,我有几个问题:

  1. 您可以编程的内容是否有任何限制?我之前指出的帖子似乎说没有,但澄清一下会很好。

  2. 我最好买一个 arduino(或类似的)然后走那条路吗?我喜欢 DS,因为它已经内置了很多硬件。

  3. 我正在考虑购买 CycloDS Evo 卡,有没有更好的自制软件选择?

  4. 了解 DS 开发的最佳资源是什么?

感谢您的宝贵时间,如果您有 DS 和程序,我希望您能听到您的意见,或者如果您有更好的想法,我也想听听。

谢谢=]

4

8 回答 8

21
  1. 不,除了硬件之外确实没有太多限制,即使是这样也可以通过足够的努力来克服。例如,Quake 已被移植到 DS,并制作了使用这两种处理器的粒子游戏。还讨论了如何使用双通道渲染器制作更高质量的 3D 场景。GBADev 论坛的 Nintendo DS 部分有多种资源。

  2. 我会说 DS 是嵌入式系统开发的绝佳途径。有一个庞大而活跃的社区愿意回答问题并提供支持,并且有很多硬件直接内置于其中。它可以节省您构建系统进行测试的时间。

  3. CycloDS Evolution 是一张很好的卡片并且相当普遍,因此如果有必要的话,让您的自制程序与其他卡片兼容应该不难。但是,请注意,其他流行的选择是 M3 线和 R4 线,它们几乎是一回事。我有一个 TTDS,它运行良好,但不是开箱即用的。我会推荐提到的其他三个。

  4. 至于开始 DS 开发,我建议查看examplesdevkitPro 文件夹中的基本示例并阅读GBA 教程 TONC,其中涵盖了 GBA 和 DS 开发中使用的许多概念。更面向 DS 的教程Patater 的 Nintendo DS 编程简介将帮助初学者在 DS 世界中走上正轨。还有一个非常全面的 GBA 和 DS 文档规范,称为 GBATek

于 2008-10-01T18:03:25.030 回答
8

大约 1 年前,我在 DS Lite 上做了一点编程。我遇到的主要硬件限制是使用 WiFi 硬件。我发现当时无法与自制程序库进行 DS-DS 通信。我不确定这是否已经改变。我还发现您无法与另一台设备建立 Ad-Hoc 连接。我必须以基础架构模式连接到 802.11b 网络,并且必须广播 SSID。

为了开发我使用

我不推荐 Supercard Lite,因为它需要使用 DS 的 GBA 和 DS 插槽。在当时,这是唯一的选择。现在有只有 DS 插槽的解决方案,例如 R4。我有一个朋友正在使用 R4,并取得了不错的成功,虽然我自己没有使用过。

于 2008-09-28T03:51:55.600 回答
5

我没有在DS上做过任何编程,但是我在GBA(Game Boy Advanced)上做了一些开发。如果您想做的是学习如何对嵌入式设备进行编程,那对您来说可能是一个不错的选择(当然也更便宜)。您甚至可以在线获得一本免费书籍:《为 Nintendo Gameboy Advanced 编程》。我建议GBA,因为正如我所见,网上有更多的资源可以学习如何为它编程。一个缺点是它没有 wifi,这意味着您将无法像 DS 那样做很多很酷的事情,但这肯定是一个开始!

于 2008-09-28T02:36:03.833 回答
3

不能说 1,2 或 3。但我用于 GBA 编程的资源也有 DS 信息:

http://nocash.emubase.de/gbatek.htm(这是一个深入的技术规范文档,但我喜欢它)

另外: http: //www.devkitpro.org/用于编译器和东西。

于 2008-09-28T02:29:56.857 回答
3
  1. 限制是硬件限制 - 有 4Mb 的 RAM,3D 硬件可以处理每帧 X 多边形等等。除此之外,它只是一堆硬件,你可以用它做你想做的事。该工具链支持 C/C++ 和汇编程序 (ARM)。

  2. 硬件的多样性也是我喜欢它的原因。掌握每一块拼图是让 DS 变得有趣的原因——每一块硬件都有自己的一套技巧,可以充分利用它。

  3. 我自己没有,所以我想在这里检查一下。不过看起来不错。
    编辑:我会选择的唯一缺点是您将在 PC 和 NDS 之间交换 SD 卡很多,而带有板载 USB 插座的推车会让您的周转速度稍快一些。

  4. 最好的资源是 libnds 示例,然后是gbadev 论坛

于 2008-09-28T03:12:36.677 回答
2

前几天我刚拿到了 CycloDS Evolution,我很喜欢它!DSOrganize就像一个迷你操作系统,它添加了一堆我希望 DS 附带的东西,就像一个真正的日历应用程序!

为了解决 Mike F 的 #3,实际上有一个用于 DS 的 FTP 服务器,您可以使用它以无线方式将文件传输到您的 DS。不过我自己没有尝试过,因为我的网络使用 WPA,而 DS 似乎只支持 WEP。

于 2008-09-28T08:07:06.533 回答
1

老实说,我在大学学习嵌入式系统课程时发现了 Nintendo DS 和自制软件社区,我意识到我为课程编程的基于 ATmega32 的套件与 Nintendo DS 的硬件级开发之间的相似之处libnds,我被迷住了。

就个人而言,我来自强大的 C++ 背景,但是自从我第一次接触到 TI-83 Plus 计算器时,能够随身携带我编程的东西一直是我的目标......由于 Nintendo DS,我现在能够实现这个目标。

无论如何,我希望您在进入 DS 开发方面能像过去几个月一样享受我的乐趣,并祝您一切顺利。

于 2010-08-04T04:00:28.940 回答
1

我都做过,GBA多于DS。我会先推荐 GBA,然后再升级到 DS,因为它会使复杂性加倍。ezflash V gba 大小 3 in 1 是一张好卡。我有一个用于 gba 的引导加载程序,我使用 NDS 写入卡和一个我下载的程序,我不记得手头的名称。一旦引导加载程序使用串行电缆并让我调试程序并将它们加载到 ram 中。该卡还允许您加载到卡上的 ram 并利用预取缓冲区和更大的程序从那里运行。对于 NDS,我尝试了很多卡。cyclods 适合日常使用,但对于开发来说不是那么多。我想我更喜欢 Acekard 2,或者 R4。想想你拉出卡并拉出sd卡并将其加载到计算机中的次数。非常痛苦,您想要一张带有 sd 卡插槽的卡,而无需拔出 slot0 卡。独轮车不是它。不过对于 NDS 来说是一张非常好的卡。我认为它不适用于 acekard 2 的 NDSi。对于nds和gba,您都可以使用visualboyadvance之类的模拟器来弄湿您的脚,它们并不完全准确,并且很常见的是,在模拟器上运行的程序无法在真实硬件上运行,而在真实硬件上运行的程序通常可以在模拟器上运行尽管。移除开发卡、重新编程和更换是非常痛苦的,引导加载程序、wifi 或任何其他可以避免的方式都是值得的。我认为它不适用于 acekard 2 的 NDSi。对于nds和gba,您都可以使用visualboyadvance之类的模拟器来弄湿您的脚,它们并不完全准确,并且很常见的是,在模拟器上运行的程序无法在真实硬件上运行,而在真实硬件上运行的程序通常可以在模拟器上运行尽管。移除开发卡、重新编程和更换是非常痛苦的,引导加载程序、wifi 或任何其他可以避免的方式都是值得的。我认为它不适用于 acekard 2 的 NDSi。对于nds和gba,您都可以使用visualboyadvance之类的模拟器来弄湿您的脚,它们并不完全准确,并且很常见的是,在模拟器上运行的程序无法在真实硬件上运行,而在真实硬件上运行的程序通常可以在模拟器上运行尽管。移除开发卡、重新编程和更换是非常痛苦的,引导加载程序、wifi 或任何其他可以避免的方式都是值得的。

Arduinos 很有趣,我推荐的是 lilypad 和 USB 转串口的东西,不需要焊接,你可以开始使用而不需要大笔投资。我更喜欢 armmite pro,类似 arduino 的足迹,但基于 arm(我唯一会购买的 lpc,不是 lpc 粉丝)。而且您不需要购买串行设备,只需一根普通的 USB 电缆和一个跳线(也许是一个回形针,直到您焊接在跳线上)。我刚刚又订购了两个,到目前为止,我的代码擦除了出厂闪存并允许我加载任何我想要的不起作用的东西,得去弄清楚。我仍然对 olimex sam7-h64 和 h256(头板 at91sam7s256)感到非常满意,因为 avr atmel 对开发人员非常友好,文档也很好。Sparkfun 是在美国找到上述所有内容的好地方。

以前的 luminary micro 现在 ti stellaris 有一些好板子。像 gba/nds 但与我提到的其他板不同,有显示器和其他外围设备可供使用,usb 是您编程所需的全部。仅限拇指模式。GBA 更喜欢拇指模式以提高性能,但可以采用任何一种方式。nds,我不记得了,从来没有了解总线的宽度和它们的时间。了解任天堂及其便宜的拇指可能会更好/更快。lm3s811 评估板太容易变砖了,1968 还不错。我不喜欢他们将开发人员从源代码​​中推到为 rtos 和特定编译器套件量身定制的预构建库中。

于 2010-08-12T05:05:37.767 回答