iReader是SuperCard小组给DSTWO开发的读书看图软件,支持更多文本/图片格式、操作方式简单、各项功能实用,意图给用户更好的阅读看图体验。
文本格式支持:txt、pdf、html、ini......
图片格式支持:BMP,JPEG,JPG,PNG,TIF,gif......
ds2sdk是应用层和驱动层的一个接口。它是GCC编译器,ds2硬件驱动库,一些开源库和一个例子的集合。它被发行的目的是为了帮助程序爱好者开发能在DSTWO上运行的程序。
ds2sdk可以看作是一个多媒体开发工具包。硬件层主要提供音频和视频传输功能,通过ds2sdk上层接口,你可以将音频数据和视频数据传送到NDS,同样,你可以把NDS的硬件信息和实时时钟信息返回给上层应用程序。所以,利用ds2sdk,如果你是一个程序爱好者,凡是与音频、视频相关事情,你都可以尝试去做。比如,你可以在上面开发或者移植自己的阅读软件,或者你觉得官方的iReader有什么可以修改的地方,你愿意的话也可以自己修改(目前最新版的iReader源码也将要全面对外发布)。你可以移植、改进相关的模拟器,或者做自己的自制软件,比如MP3播放器,MPLAYER播放器,你甚至可以做自己的小游戏。总之,只要你是一个软件爱好者, ds2sdk就有你施展的舞台。
为了使用ds2sdk,你需要做以下几件事情:
( 1 ) 建立开发环境,包括linux环境和交叉编译环境。
( 2 ) 你的程序中必须有应用程序入口: ds2_main(), 就像一般程序中的main函数一样。
( 3 ) 初始化相关软硬件(包括视频、音频和其它输入输出设备等待):由函数ds2io_init()或者函数ds2io_initb()完成。
( 4 ) 初始化控制台:由函数ConsoleInit()完成。
( 5 ) 初始化文件系统:由函数fat_init()完成。此文件系统只能读写DSTWO上的SD卡。
( 6 ) 进入用户主程序,至此,控制权交给用户应用程序。
示例,具体可以参照ds2sdk的example:
void ds2_main(void) //( 2 ) { //( 3 ) 初始化视频、音频和其它输入输出设备及相关结构 ds2io_init(1024); //( 4 ) 初始化控制参,以便能够使用printf函数 ConsoleInit(WHITE_COLOR, BLACK_COLOR, UP_SCREEN, 10); //( 5 ) 初始化文件系统 fat_init(); //( 5 ) 跳到用户主函数 main(0, 0); }
在用户应用程序中,你需要调用以下函数来完成音频和视频的传送:
音频:
ds2_checkAudiobuff()//检查有多少个音频缓冲被占用,返回被占用的缓冲数量
ds2_getAudiobuff()//获取音频缓冲地址
ds2_updateAudio()//刷新音频数据,使音频数据从音频缓冲送至ds2io层,进入数据发送等待队列
视频:
ds2_flipScreen() //更新视频数据,使数据从缓冲送至屏幕
为了建立交叉编译环境,linux环境是需要的。如果你的电脑安装的操作系统恰好是linux,那就是最好不过的了。不过现在的情况是,很多人使用的操作系统都是Windows,怎么办呢?幸运的是有很多方法可以在Windows上模拟出linux环境,比如Cygwin和VM(Virtual Machine) technology能做到这一点。由于Cygwin必须依赖DLL库,并且存在版本兼容问题,因此不建议使用Cygwin,虽然它占用的CPU资源和硬盘空间都比较少。最有效可行的方法是在Windows上安装VM,比如,VMware Workstation 和VirtualBox。虽然它们占用CPU资源和硬盘空间都比较多,但兼容性会更好,你碰到的问题也会尽可能的少。我个人建议使用 VMware Workstation。在这里我们使用VMware Workstation 6和Fedora 9建立一个linux环境。
在你完成了linux环境的建立后,并且你已经从网上下载了ds2sdk开发工具压缩包到你的硬盘,这时候该如何建立交叉编译环境和编译ds2sdk里面的例子呢?你需要设置虚拟机共享文件夹(关于VMware Workstation共享问题,不同版本的VMware Workstation,有不同的方法,在这里不作一一介绍),使虚拟机能够访问到ds2sdk工具包,或者你可以直接把ds2sdk工具拷贝到你的虚拟机所安装的 linux操作系统内,然后解压。在这里顺便提一下,你每次最好以root身份登陆,不然后面可能会碰到的权限问题会让你很头疼。
例如:你的ds2sdk目录: ~/, 你的工作目录是: ~/opt
到这里,你可以打开你的终端,输入命令如下:
mkdir -p ~/opt cd ~/opt tar xjf ~/ds2sdk/gcc/mipsel-4.1.2-nopic.tar.bz2 export PATH=$PATH:~/opt/mipsel-4.1.2-nopic/bin In fact, enter ds2sdk directory, just: make. the makefile will decompress compiler to ~/opt directory and compiling the open source library libds2a.a and example files.
本次发布的SDK最大的亮点在于包含有底层硬件代码,也就是libds2b.a的源码,具体来说就是JZ与FPGA/NDS通信的源代码,我想这也是SDK拥有者最想看到的部分。 唯一的遗憾是你不能看到,也不能修改FPGA的程序,因为必须要保持产品的兼容性,所以FPGA部分不会轻易被改动。不过留给我们的空间已经很大了, 例如,配合NDS程序,如果感兴趣的话你可以自己来优化DS2数据传输,或者发布性能更加强大,更具实用性和操作性的SDK。 另外,还可以利用本次发布的SDK在DS2上开发Linux,这或许是令很多人心动的,并且期待已久的事情。