在Nintendo DS上编程
之前,我一直在阅读此答案,这使我对购买Nintendo DS Lite感兴趣,以学习对嵌入式设备进行编程的知识。在我出手购买DS之前,我有几个问题:
- 我们可以编程的内容是否受到限制?我之前指出的帖子似乎说没有,但是澄清会很好。
- 我会更好地购买arduino(或者类似产品)并走那条路线吗?我喜欢DS,因为它已经内置了很多硬件。
- 我正在考虑购买CycloDS Evo卡,自制软件有更好的选择吗?
- 学习DS开发的最佳资源是什么?
感谢宝贵时间,如果我们有DS和程序,希望我们能听听我的意见,或者,如果我们有更好的想法,我也想听听。
谢谢=]
解决方案
不能说1,2或者3. 但是我用于GBA编程的资源也有DS信息:
http://nocash.emubase.de/gbatek.htm(这是深入的技术规范文档,但对此我很喜欢)
另请参阅:http://www.devkitpro.org/,以获取编译器和相关内容。
我没有在DS上进行任何编程,但是我已经在GBA(Game Boy Advanced)上进行了一些开发。如果我们想做的是学习如何对嵌入式设备进行编程,那么这对我们(也许是更便宜的一种)来说是个不错的选择。我们甚至可以在线获得免费的书籍:《任天堂Gameboy Advanced》编程。我建议使用GBA,因为如我所见,在线上有很多资源可供学习如何编程。一个缺点是它没有wifi,这意味着我们将无法像DS一样完成许多有趣的事情,但这无疑是一个开始!
- 限制是硬件限制-有4Mb的RAM,3D硬件每帧可以处理X个多边形。除此之外,它只是一堆硬件,我们可以使用它们来完成所需的工作。工具链支持C / C ++和汇编器(ARM)。
- 硬件的多样性是我也喜欢它的原因。抓住难题的每一个要素,都会使DS变得有趣-每一点硬件都有自己的一套技巧,可以最大程度地利用它。
- 我自己一个人,所以我想看看这里。看起来不错。编辑:我唯一会选择的是,我们将在PC和NDS之间大量交换SD卡,而带有板载USB插座的购物车将使周转速度稍快。
- 最好的资源是libnds示例,然后是gbadev论坛。
大约1年前,我已经在DS Lite上做了一些编程。我主要的硬件限制是使用WiFi硬件。我发现当时无法通过自制软件库进行DS-DS通信。我不确定这是否已改变。我还发现我们无法与另一台设备建立Ad-Hoc连接。我必须以基础架构模式连接到802.11b网络,并且必须广播SSID。
为了发展我用了
- PALib(帮助程序库):http://www.palib.info/wiki/doku.php?id=day1
- DevKitPro(工具链):http://www.devkitpro.org/
- no $ gba(DS模拟器)-http://nocash.emubase.de/gba.htm
- Supercard Lite(运行自制程序的硬件)-http://www.realhotstuff.com/-c-32_81.html
我不建议使用Supercard Lite,因为它需要使用DS的GBA和DS插槽。当时这是唯一的选择。现在有DS插槽专用解决方案,例如R4. 我有一个朋友正在使用R4并在R4上取得了不错的成绩,尽管我自己并未使用过。
前几天,我刚刚获得了CycloDS Evolution,我非常喜欢它! DSOrganize就像一个微型操作系统,它添加了许多我希望DS附带的东西,例如一个实际的日历应用程序!
为了解决Mike F的#3问题,实际上有一个用于DS的FTP服务器,我们可以使用该服务器将文件无线传输到DS。不过,我自己还没有尝试过,因为我的网络使用WPA,而DS似乎仅支持WEP。
- 不,除了硬件的限制外,实际上没有太多限制,甚至可以通过足够的努力来克服。例如,《雷神之锤》已经移植到DS,并且已经开发出了使用两种处理器的粒子游戏。还讨论了如何使用双通道渲染器制作更高质量的3D场景。 GBADev论坛的Nintendo DS部分上有多种资源。
- 我想说DS是嵌入式系统开发的绝妙途径;有一个庞大而活跃的社区愿意回答问题并提供支持,并且有很多硬件直接内置在其中。它为我们节省了构建测试系统的时间。
- CycloDS Evolution是一个很好的卡,并且相当普遍,因此,使自制软件与其他卡兼容并不困难-如有必要,也很容易。但是,请注意,其他流行的选择是M3系列和R4系列,它们几乎是同一回事。我有一个TTDS,它运作良好,但不是开箱即用。我建议提及其他三个。
- 至于开始进行DS开发,我建议我们查看devkitPro的" examples"文件夹中的基本示例,并阅读GBA教程TONC,其中涵盖了GBA和DS开发中使用的许多概念。更面向DS的教程,Patatter的Nintendo DS编程简介,初学者进入DS世界。对于GBA和DS,还有一个非常全面的文档规范,称为GBATek。
老实说,我在上大学的嵌入式系统课程时发现了Nintendo DS和家酿社区,并且我意识到我正在为本课程编程的基于ATmega32的套件与Nintendo DS的硬件级开发之间的相似之处libnds,我被迷住了。
就我个人而言,我有很强的C ++背景,但是自从我第一次接触TI-83 Plus计算器以来,能够随身携带我编程的东西一直是我的目标...由于Nintendo DS,我现在能够实现这一目标。
无论如何,我希望我们能像过去几个月一样享受DS开发带来的乐趣,并且祝我们工作顺利。
与GB相比,我做的GBA都多。我建议先使用GBA,然后再升级到DS,因为这样会使复杂性加倍。大小为3合1的ezflash V gba是不错的卡片。我有一个使用NDS写入卡的gba引导程序,以及一个我下载的程序,我记不起手头的名称。一旦引导程序正在使用串行电缆,就可以调试程序并将其加载到ram中。该卡还允许我们加载到卡上的ram中,并利用预取缓冲区和更大的程序从那里运行。对于NDS,我尝试了许多卡。独眼巨人对于日常使用非常有用,但对发展却没有太大的作用。我想我更喜欢Acekard 2或者R4. 考虑一下我们拉出SD卡并拉出SD卡并将其加载到计算机中的次数。非常痛苦的是,我们需要一张具有sd卡插槽的卡,而不必将slot0卡拔出即可。独眼巨人不是吗。 NDS的一个很好的卡。我认为它不能像acekard 2那样在NDSi上工作。对于nds和gba,我们都可以使用visualboyadvance之类的模拟器来弄湿它们,它们并不完全准确,而且很普遍,在模拟器上运行的程序不能在实际硬件上运行,在真实硬件上运行的程序通常可以在模拟器上运行尽管。卸下开发卡,重新编程和更换非常麻烦,引导加载程序,wifi或者其他任何可以避免的方法都是值得的。
Arduinos很有趣,有趣的是,我建议我们使用lilypad和usb到串行设备,无需焊接,我们可以投入很少的钱就可以开始使用。我更喜欢armmite pro,arduino更喜欢足迹,但基于手臂(我会购买的唯一的lpc,现在不是lpc风扇)。而且我们不需要购买串行设备,只需购买普通的USB电缆和跳线即可(也可以使用回形针,直到我们焊接跳线为止)。我只是又订购了两个,到目前为止,我的代码擦除了出厂时的闪存,并允许我加载任何我不想要的东西,必须找出答案。我对olimex sam7-h64和h256(标头板at91sam7s256)仍然感到非常满意,因为avr atmel对优秀文档非常友好。 Sparkfun是在美国找到以上所有内容的好地方。如果我们像我一样使用linux,Sam-ba现在有一个linux版本,Windows版本已经存在了一段时间,相当容易擦除和重新编程,比ds或者gba容易得多,与arduino或者armmite pro或者相似的。
以前的luminali micro现在ti stellaris有一些不错的板子。像gba / nds一样,但是与我提到的其他板不同,有显示器和其他外设可以玩,usb是我们需要编程的全部。只是拇指模式。 GBA倾向于使用拇指模式来提高性能,但可以选择其中一种。我不记得了,nds从来没有深入了解过总线的宽度及其时序。了解任天堂及其便宜的拇指可能会更好/更快。 lm3s811评估板太容易用砖砌起来,1968年也不算坏。我不喜欢他们将开发人员从源头转移到针对rtos和特定编译器套件量身定制的预构建库中。