2013年6月28日 alex

iDSL入手,开始解剖

【2008】

买了DS,我将对这个系统进行全面的研究解析学习,从硬件改造到系统内核,然后是游戏和工具软件开发,所以专门在blog里面建立了这样一个板块.说实话,这确实有点过时,但是作为一个经典的业内系统案例,我还是决定研究一下.小DS要拆开比较费劲,还要买个三角螺丝刀.解析的第一步自然是了解硬件系统结构,所以这里我将其他站点的一些资料转来(本文的后半部分),结合pcb阅读一下.详细的原理图我正在寻找,但是尚没有找到,所以也只是粗看,具体的问题碰到以后再做具体分析吧.

附图:我买的iDSL现场新鲜解剖

44615_080924172129

图1.拆开来先看到的主板反面

44615_080924172045

图2.翻过来看到了主板正面

cpu在屏幕的后面,我没拔掉屏幕拍照,直接转个别的站的日版nds拆机的相关部分吧(可能会有细节差异,这里仅是示意一下)。

44615_081105203613

图3.NDS的cpu照片(来自日経BP社)

实际上DS是一个由不带mmu的一片ARM946和一片ARM7构建的系统,初看起来挺像普通的手机或pmp方案.但和现在的多数类似的消费类电子产品相比,他并没有安排多线操作系统,从网上找来的以往的反向工程研究资料来看,他的构建比我想象的要简单很多.我昨天晚上大体阅读了一下网上流传的libnds的代码,发现操作果然是全裸式的,这也让喜欢做底层的我感觉十分亲切.可以直接和registers打交道,总归要比结合mmu的系统简单得多.我想,如果当年我不是做三星的开发板的话,大概在DS这种东西上尝试写个操作系统要更有趣一些.

以往已经有人把uClinux2.6跑在了DS上,可惜那群人的网站不知道为什么挂掉了(dslinux.org),联系不上他们(我都跑去linux.com的论坛上灌水找了),我也搞不清楚他们最开始的时候具体是怎么入手寻找切入点的,毕竟如果什么资料都没有的话(Nintendo并没有开放研发资料),这个porting还是很有难度的.今天我找到了NDS wiki这个站点,上面有不少关键有用的资料,我想这些基础研究应该是在uClinux移植之前完成的,大概的有了点头绪.

我还有些数学书没看完(最近在学些东西),今天先写到这里.

另外,偶要感谢动物之森联谊会和其他DS群组里的朋友给偶的帮助,谢谢大家.

—-以下内容供参考———————————————-

sanicle注:idsl/ndsl,ids/nds是有细节差异的,部分配件不太一样,现在网络上的很多详细资料是针对日版nds的(日版nds的主板上写着C/NTR-CPU-01,而我买的idsl主板上的title是C/USG-CPU-01)。

《日经电子》拆卸小组的DS剖析(针对日版NDS)
http://china.nikkeibp.co.jp/china/news/digi/200411/digi200411260113.html
http://techon.nikkeibp.co.jp/members/NEWS/20041123/106554/

NDS硬件系统非官方解析(针对日版NDS)
http://www.bottledlight.com/ds/index.php/Main/Hardware