信息科学与技术学院学士学位论文
1 绪论
1.1系统概述
本系统是设计一个基于嵌入式TXT的电子书阅读器功能开发[1],实现在嵌入式系统上可以查看电子书的功能。
硬件部分采用三星FS2410开发板[2],网线。
系统软件部分包括系统初始化程序U-boot[3],Linux操作系统[4],根文件系统[5]和一些运行应用程序所需要的库。
应用软件就是开发的TXT电子书阅读器程序。
基于SDL开发库进行开发[6],首先将嵌入式Linux操作系统移植到基于ARM9核的FS2410的平台上。在嵌入式操作系统环境下,运行具有阅读TXT电子书功能的应用程序,实现对TXT电子书的基本阅读。
1.2研究的意义和目的
电子书阅读器将会带动阅读习惯、学习模式、内容创作及出版型态的改变,走向分众化、个人化、网络化及随身携带的行动智能信息发展,全方位的数字内容服务平台及商业模式也将应运而生,这些改变将带动许多新的服务产业,也会是未来其他新兴科技应用发展的典范。
针对电子书阅读器的开发技术,不仅是限于各大公司之间的竞争,对个人也是挑战,本系统设计并实现了TXT电子书阅读器的功能,不仅要在嵌入式底层做好基础,而且还要在上层应用上开发阅读器。嵌入式系统可以有很灵活的特点,在本系统中只需要满足能让应用程序运行的要求,也可根据需求进行适当的改动。在上层应用开发上,电子书阅读器要能在嵌入式系统上实现上、下一行查看以及翻页查看功能以及放大缩小字体。
1.3国内外发展现状
随着数字阅读的方兴未艾,电子书市场风生水起,但国内外电子书发展市场,
1
信息科学与技术学院学士学位论文
整体增势缓慢,电子书远没有达到普及的程度[7]。究其原因,不仅在电子书内容上没有达到服务用户的要求,而且在终端设施上也没有达到,另外,电子书在资源上混乱,没有形成一个完整的规划。然而面对电子书市场的巨大利润,国内外各大公司都在此方向寻生存机遇,在技术上,电子书阅读器并没有达到炉火纯青的地步,有很多的技术难题存在。
1.4发展趋势
尽管电子书现在已经到处可见,但是用户的需求是无止境的,伴随着硬件设施的不段改良,电子书会向着便捷,清爽,多元化,智能化的道路发展,打破传统纸质书的阅读习惯,有非纸质书不能比拟的优势。在未来的发展道路上,电子书很有可能会和移动3G相结合,达到书籍和网络的相结合,成为一项成熟的产业和技术,电子书普及到每个用户的手上。开发出高性能以及人性化的的阅读器,才能满足用户需求,达到用户所预期的效果。
1.5本章总结
首先对整个系统的硬件、系统软件以及应用程序做了一个简单的陈述,然后具体介绍了开发此系统的意义和目的。接下来分别介绍了电子书阅读器在国内外的发展现状以及未来的发展的趋势。面对电子书市场的巨大利润,开发高性能的电子书阅读器会是一项热门的技术。
2
信息科学与技术学院学士学位论文
2 系统需求分析
在进行可行性研究和项目开发计划以后,如果确认开发一个新的软件系统是必要的而且是可行的,那么就可进入需求分析阶段[8]。
需求分析是指开发人员要理解用户的要求,进行详细的市场调查,确定系统的新目标。为了满足用户的需要,回答系统要“做什么”的问题。
2.1 系统功能需求分析
随着数字电子技术的日益发展,电子书市场也愈演愈烈,面对巨大市场利润,各大公司纷纷投向电子书市场,电子书的应用将会普遍在普通市民中。
本系统是开发出具有TXT功能的电子书阅读器,该阅读器主要功能有上下行查看,翻页查看,放大查看以及尽可能完成具有书签的电子书阅读器,然后将该应用程序移植到开发板上,能进行相应的阅读功能,其功能流程如图1-1所示。
左键 上行 下行 上页 下页 放大 颜色 退出 右键 上键 下键 左Alt 右ctrl 左Ctrl 等待命令 否 有按键 是 否 结束 有效按键 是 图1-1 功能流程图
3
信息科学与技术学院学士学位论文
2.2 系统硬件需求分析
嵌入式系统开发与硬件平台紧密相连,没有硬件支持的嵌入式平台是不完整的,良好的硬件平台也为嵌入式系统应用软件的开发提供了许多便利,选择合适的硬件平台是一项复杂的工作。
根据系统开发需求与实际情况结合,本系统采用的硬件平台是飞凌公司FS2410开发板[2],处理器是SAMSUNG S3C2410[9],主频203MHz,存储器包括64M Bytes NAND FLASH(K9F1208),2M Bytes NOR FLASH (SST39VF1601),64M Bytes SDRAM,通过以太网控制芯片CS8900扩展了一个网口,另外通过50芯LCD接口引出了LCD控制器的全部信号。
2.3 系统软件需求分析
软件平台主要是BootLoader[10],嵌入式操作系统,嵌入式文件系统以及一些在本电子书应用程序运行所要的库。
(1)BootLoader是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。结合系统的需求并综合比较了各种BootLoader的优缺点,本系统选择了U-boot作为本系统的BootLoader。
U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。U-boot不仅仅支持嵌入式Linux系统的引导,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。U-boot具有较高的可靠性和稳定性,高度灵活的功能设置。U-boot可以使用JTAG板直接烧写入Nor Flash中使用,也可以直接烧写入Nand Flash中运行。
(2)嵌入式操作系统是嵌入式系统极为重要的组成部分。它提高了系统的可靠性、提高了开发效率,缩短了开发周期、充分发挥了32位CPU的多任务潜力。
嵌入式操作系统的选择主要考虑其可移植性、可利用资源、系统定制能力和成
4
信息科学与技术学院学士学位论文
本。综合对比了几种嵌入式操作系统,本系统选择了嵌入式Linux操作系统,它与其它嵌入式操作系统相比,Linux有以下特点:
① Linux系统是层次结构且内核完全开放。Linux是由很多体积小且性能高的微内核系统组成;
② 强大的网络支持功能;
③ Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍;
④ Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行;
⑤ Linux有装载和卸载程序的能力,所有应用程序以文件的形式被存放在闪存文件系统中并在必要的时候被装载到内存中,以节省RAM;
⑥ Linux移植到新的微处理器体系非常快捷,一般是将其移植到一种新型的目标板,其中包含有独特的外设。
(3)根据上面的分析本系统选择了Linux作为嵌入式操作系统,其支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等[11],为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS,为各类文件系统提供一个统一的操作界面和应用编程接口。
不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM和ROM,常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。本系统采用了busybox来制作yaffs的文件系统作为本系统的文件系统,其主要有一下特点:
① YAFFS[12]文件系统类似于JFFS/JFFS2,是专门为NAND闪存设计的嵌入式文件系统,适用于大容量的存储设备。它是日志结构的文件系统,提供了损耗平衡和掉电保护,可以有效地避免意外掉电对文件系统一致性和完整性的影响。
② YAFFS文件系统是按层次结构设计的,分为文件系统管理层接口、YAFFS内部实现层和NAND接口层,这样就简化了其与系统的接口设计,可以方便地集
5