基于嵌入式Linux的Flash存储系统的研究和实现

合集下载

嵌入式系统中Bootloader的设计与实现_马学文

嵌入式系统中Bootloader的设计与实现_马学文

嵌入式系统中Bootloader 的设计与实现马学文1,朱名日1,2,程小辉1 (1. 桂林工学院电子与计算机系,桂林541004;2.中南大学信息物理工程学院,长沙410083)—97—作者所承研的项目中硬件平台是基于ARM7TDMIRISC 内核的三星公司S3C4510B 微处理器,采用的嵌入式Linux 系统为uCLinux。

系统有64MB SDRAM, 其地址从0x 0800.0000 ~0x0bff.ffff, 还有32MB Flash, 其地址从0x0c00.0000~0x0dff.ffff。

32MB Flash 具体规划如下:从0x0c00.0000 开始的第1 个1MB 放Bootloader,从0x0c10.0000开始的2MB放Linux kernel, 从0x0c30.0000开始的余下部分都给rootdisk。

64MB SDRAM 启动后的具体程序分布示意图如图2 所示。

图2 64MB SDRAM 的程序分布示意图Bootloader 一般有几个文件组成。

先是START.s,也是唯一的一个汇编程序,其余的都是C 语言写成的,START.s主要用来初始化堆栈:_start:ldr r1,=StackInit /* r1 是参数字符串的地址*/ldr sp,[r1]int main().equ StackInitValue,_end_data+0x1000/* 在连结脚本中指定4K __end_data*/StackInit:.long StackInitValue.global JumpToKernelJumpToKernel: /*拷贝内核的代码*/mov pc, r0 /*获得Kernel 地址*/.global JumpToKernel0x /*用来扩展内核*/JumpToKernel0x: /*拷贝获得的扩展内核*/mov r8, r0mov r0, r1mov r1, r2mov r2, r3mov r3, r4mov pc, r8.section“.data.boot”.section“.bss.boot”其中main 函数的C 语言实现过程如下:int main(){U32 *pSource, *pDestin, count;U8 countDown, bootOption;U32 delayCount;U32 fileSize, i;char c;char *pCmdLine;char *pMem;init(); /*初始化Flash 控制器和CPU 时钟*/EUARTinit(); /*串口初始化*/EUARTputString("\n\n Linux Bootloader\n"); /*打印信息*/ EUARTputString((U8 *)cmdLine); /*command_line 支持, 用于定制内核*/EUARTputString("\n\n");用command_line 可以给内核传一些参数,自己定制内核的行为。

基于VDK的嵌入式文件系统实现

基于VDK的嵌入式文件系统实现

基于VDK的嵌入式文件系统实现林森;曹晓曼;方火能;刑开宇【期刊名称】《电子科技》【年(卷),期】2012(025)001【摘要】According to the high speed storage system based on the Nand Flash which has been developed by our laboratory, this paper states the specific realization of the embedded file system, which makes use of the BF537 and the kernel of the integrated development environment Visual DSP ++ called VDK. It also introduces the process of virtual address mapping and bad block mark to manage the bad blocks of Nand Flash and realize the address trans- mission of the file system.%针对实验室开发的基于NandFlash的高速、大容量存储系统,阐述了利用BF537及其集成开发环境Visual DSP++的内核VDK,实现嵌入式文件系统的具体方案。

同时简要介绍了通过虚拟地址映射和坏块标记的方法,来管理NandFlash芯片中的坏块,以此实现文件系统的地址传输。

【总页数】4页(P53-55,60)【作者】林森;曹晓曼;方火能;刑开宇【作者单位】西安电子科技大学电子工程学院,陕西西安710071;西安电子科技大学电子工程学院,陕西西安710071;西安电子科技大学电子工程学院,陕西西安710071;西安电子科技大学电子工程学院,陕西西安710071【正文语种】中文【中图分类】TP316.2【相关文献】1.基于Flash的嵌入式文件系统设计与实现 [J], 张继珂;谷青范2.基于Linux的嵌入式多文件系统的实现 [J], 郎平;黎福海;崔泷;刘红燕3.基于MSP430F5438和FatFs嵌入式文件系统的实现 [J], 路敦强;吴晓荣4.基于29LV160TE芯片存储器的嵌入式文件系统设计与实现 [J], 吴荣森5.基于DSP的嵌入式文件系统的设计与实现 [J], 桑楠因版权原因,仅展示原文概要,查看原文内容请购买。

基于嵌入式ARM-Linux的播放器的设计与实现

基于嵌入式ARM-Linux的播放器的设计与实现

基于嵌入式ARM-Linux的播放器的设计与实现摘要随着21世纪的到来,人类进入了PC时代。

在这一阶段,嵌入式技术得到了飞速发展和广泛应用。

由此,本文提出了一种基于嵌入式ARM-Linux的播放器设计与实现的方案。

本文首先详细分析了ARM体系结构,研究了嵌入式Linux操作系统在ARM9微处理器的移植技术,包括交叉编译环境的建立、引导装载程序应用、移植嵌入式Linux内核及建立根文件系统,并且实现了嵌入式Linux到S3C2410开发板的移植。

由于嵌入式系统本身硬件条件的限制,常用在PC机的图形用户界面GUI系统不适合在其上运行。

为此,本文选择了Minigui作为研究对象,在对其体系结构等方面进行研究基础上,实现了Minigui到S3C2410开发板的移植,完成了嵌入式图形用户界面开发,使得系统拥有良好的操作界面。

对于播放器,本文实现了Linux系统下的通用媒体播放器—Mplayer到S3C2410开发板的移植。

通过对音频数据输出的研究,解决了Mp1ayer播放声音不正常的问题,实现了一个集音乐和视频播放于一体的嵌入式多媒体播放系统。

最后,总结了论文所做的工作,指出了嵌入式播放器所需要进一步解决和完善的问题。

关键词:嵌入式ARM-Linux; S3C2410; Mplayer; GUI界面; MiniguiPlayer Designing and Implement Based On Embedded ARM-LinuxAbstractAlong with the 21st century arrivals, the humanity enters the post PC time. In this stage, embedded technology gets rapidly developed and widely used. So, this paper aims to design a player based on embedded ARM-Linux.First, in this paper, ARM architecture and the characteristic are analyzed in detail. The emphasis of the study is put on the porting techniques of embedded Linux operation system based on the ARM9 micro-processor, which include setting cross complier、transplanting Bootloader、transplanting embedded Linux kernel and setting root file system; Furthermore, implement the technique of transplanting Embedded Linux to S3C2410 board.GUI (Graphical User Interfaces) systems which are supported by normal PCs cannot run well on the embedded systems, just because of the restriction of the hardware of embedded devices. So, this paper selects Minigui as research object. Based on the Minigui architecture and its other aspects, the technique of transplanting Minigui to S3C2410 board is given in detail, and then an embedded GUI system is established and it also makes the handle interface friendly.About the player, this paper implements transplanting the universal player on Linux-Mplayer to S3C2410 board. By learning of audio data, it solves the problem of sound abnormality, and achieves an embedded multimedia system which could play audio and video files.Key words: Embedded ARM-Linux; S3C2410; Mplayer; GUI interface; Minigui目录摘要 (I)Abstract ........................................................... I I 目录.............................................................. I II 第一章绪论.. (1)1.1系统研究背景 (1)1.1.1 多媒体播放器与嵌入式系统 (1)1.1.2 嵌入式多媒体播放器国内外发展现状 (1)1.2 嵌入式处理器 (3)1.3 嵌入式系统 (4)1.3.1嵌入式系统的概述 (4)1.3.2 嵌入式系统的选择 (5)1.4 本文的意义和主要工作 (7)第二章系统软硬件平台的搭建 (8)2.1 硬件开发平台的介绍 (8)2.1.1 核心板 (8)2.1.2 外设板 (8)2.1.3 设计所用硬件介绍 (9)2.2 硬件平台的设计方案 (9)2.2.1 核心板设计 (9)2.2.2 外设电路设计 (14)2.3 嵌入式软件开发环境 (15)2.3.1 引导装载程序 (16)2.3.2 宿主机开发环境配置 (17)2.3.3 交叉开发环境的建立 (18)2.3.4 内核的编译 (18)2.3.5 烧制内核映像和文件系统 (20)2.4 嵌入式图形用户界面的实现 (20)2.4.1 图形用户界面minigui的简介 (20)2.4.2 MiniGUI在S3C2410开发板上的移植过程 (21)第三章 Mplayer的移植 (25)3.1 Mplayer的简介 (25)3.2 Mplayer的移植 (25)3.2.1 安装交叉编译工具及解压源代码 (25)3.2.2 编译Mplayer (25)3.3 调试 (27)第四章嵌入式播放器Mplayer的设计 (31)4.1 播放器的工作流程 (31)4.2 播放器的逻辑结构 (31)4.3 Mplayer播放器的目录文件组织结构 (32)4.4 播放器对解码器和输出设备的管理方式 (34)第五章总结与展望 (36)5.1 本文主要完成的工作及结论 (36)5.2 完善与展望 (36)致谢 (37)参考文献: (38)第一章绪论1.1系统研究背景从上世纪末开始,随着计算机和电子技术的发展走上快车道,便携式电子设备,诸如智能手机,个人电子助理(PDA)的运算存储能力和通信能力都得到了长足的进步,便携式设备的用户界面也变的越来越友好,从早期的只能显示单色文字的LED,发展到现在大尺寸6万色彩色液晶屏幕。

一种基于NandFlash的嵌入式文件系统的设计

一种基于NandFlash的嵌入式文件系统的设计

文件管理层对整个文件系统进行封装 , 为应用层提供统

的、 标准的 A I 口, P接 把用户对文件的操作请求提交给文件
逻辑层来处理 。如 FF p ( ,SC s( ,SCet) FF SO e ) FF le ) FF r ( ,S — n o a Se( ,SR a( ,S W i ( ,SD l)FF ea e) e )FF e )F F re)FF e ,SR nm (等。 k d t ( 文件逻辑层 为文件管理层提供服务 , 把文件管理层对文 件的操作转换 为物理逻辑上 的操作 , 平均磨损控制 , 块管 坏 理, 并提交给 Fa 驱动层处理。 lh s F s 设备驱动层实现对 F s 的物理操作 , 括块 的擦 lh a lh a 包
次数没有限制。每页有 1 个字节的空闲区, 6 可作扩展功能使用 。芯片包含有失效块 , 其数 目最大可达 到 3 3 块( ~ 5 取决于存储器密度 )失效块不会影 响有效块的性能, , 但设计者需。故在文件系统 的设计 中必须考虑提高 系统的可靠性、l h F s 存储器的磨损均衡性 、 a 坏块 的 管理和文件系统的效率等问题。
嵌入式系统条件在应用时由于电源 电压 的不稳定以及突发性断 电可能对 F s 的存储器造成灾难 lh a
性的影响。另外 , 通用文件系统一般针对系统资源非常丰富的计算机平 台, 常使用大量缓存技术来提高
文件系统的速度 , 耗费的系统资源较多 , 而嵌入式系统 中系统资源十分有限。 N nF s 与其他存储器的不同点在于写操作过程 , adl h a 它的各个存储单元不可直接改写 , 需要先擦除 再写入 。通常以页为单位进行读 和编程操作 , 以块为单位进行操除操作 , 各块擦除次数有限制 , 但读 的

天津科技大学嵌入式操作系统---第3章 基于linux的嵌入式软件开发

天津科技大学嵌入式操作系统---第3章 基于linux的嵌入式软件开发
3.1.1 嵌入式软件体系结构 3.1.2 基于Linux的嵌入式软件
18:19
4
3.1.1 嵌入式软件体系结构
18:19
5
1. 设备驱动层
设备驱动层是嵌入式系统中必不可少的重 要部分,使用任何外部设备都需要有相应 驱动程序的支持,它为上层软件提供了设 备的操作接口。 上层软件不用理会设备的具体内部操作, 只需调用驱动层程序提供的接口即可。 驱动层一般包括硬件抽象层HAL、板级支 持包BSP和设备驱动程序。
18
3.2.2 基于开发板的二次开发
所谓二次开发是利用现成的开发板进行开发,不同于通用 计算机和工作站上的软件开发工程,一个嵌入式软件的开 发过程具有很多特点和不确定性。其中最重要的一点是软 件跟硬件的紧密耦合特性。 由于嵌入式系统的灵活性和多样性,这样就给软件设计人 员带来了极大地困难。第一,在软件设计过程中过多地考 虑硬件,给开发和调试都带来了很多不便;第二,如果所 有的软件工作都需要在硬件平台就绪之后进行,自然就延 长了整个的系统开发周期。这些都是应该从方法上加以改 进和避免的问题。 为了解决这个问题,通常的做法是基于某种开发板做二次 开发,从这个角度看,硬件开发所占的比重不到20%,而 软件开发的比重占到了80%。
3.1 嵌入式软件结构 3.2 嵌入式软件开发流程 3.3 嵌入式linux开发环境 3.4 嵌入式系统引导代码 3.5 linux内核结构及移植 3.6 嵌入式文件系统及移植 3.7 linux设备驱动概述 3.8 设备驱动程序接口 3.9 linux设备驱动开发流程
18:19 3
3.1 嵌入式软件结构
?在嵌入式开发中经常要面对设备驱动程序的开发嵌入式系统通常有许多设备用于与用户交互象触摸屏小键盘滚动轮传感器在嵌入式开发中经常要面对设备驱动程序的开发嵌入式系统通常有许多设备用于与用户交互象触摸屏小键盘滚动轮传感器rs232接口lcd等等

嵌入式linux(贺丹丹等编著)课后习题答案

嵌入式linux(贺丹丹等编著)课后习题答案

嵌入式linux(贺丹丹等编著)课后习题答案第八章一、填空题。

1、ARM-Linux内核的配置系统由三个部分组成,它们分别是Makefile、配置文件和配置工具。

2、配置工具一般包括配置命令解释器和配置用户界面,前者主要作用是对配置脚本中使用的配置命令进行解释;而后者则是提供基于字符界面、基于Ncurses图形界面以及基于X Window图形界面的用户配置界面。

3、Makefile文件主要包含注释、编译目标定义和适配段。

4、Linux内核常用的配置命令有make oldconfig、make config、make menuconfig和make xconfig。

其中以字符界面配置的命令是make config。

5、内核编译结束后,会在“/arch/arm/boot/”目录下面和根目录下面生成一个名为zImage的内核镜像文件。

二、选择题C AD D B三、叙述题1、Linux内核各个部分与内核源码的各个目录都是对应起来的,比如有关驱动的内容,内核中就都组织到“drive”这个目录中去,有关网络的代码都集中组织到“net”中。

当然,这里有的目录是包含多个部分的内容。

具体各个目录的内容组成如下:arch:arch目录包括了所有和体系结构相关的核心代码。

include:include 目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux 子目录下;init:init 目录包含核心的初始化代码(不是系统的引导代码),有main.c 和Version.c 两个文件;mm:mm 目录包含了所有的内存管理代码。

与具体硬件体系结构相关的内存管理代码位于arch/*/mm 目录下;drivers:drivers 目录中是系统中所有的设备驱动程序。

它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound;ipc:ipc 目录包含了核心进程间的通信代码;modules:modules 目录存放了已建好的、可动态加载的模块;fs:fs 目录存放Linux 支持的文件系统代码。

嵌入式毕业论文

嵌入式毕业论文目录第一章绪论 (1)1.1 嵌入式系统 (1)1.2 ARM 微处理器简介 (2)第二章系统开发环境 (4)2.1 ADS1.2软件 (4)第三章系统设计选型 (9)3.1 ARM处理器选型 (9)第四章系统硬件电路设计 (12)4.1电源电路设计 (13)4.3字模函数 (14)4.4触摸屏驱动程序 (14)4.5 坐标点校准 (16)4.6画线函数算法 (17)4.7系统软件设计 (18)第五章系统测试结果与分析 (19)5.1系统概述 (19)5.2软件运行截图 (19)第七章设计总结与展望 (21)参考文献 (22)附录二 (2)第一章绪论1.1 嵌入式系统1、什么是嵌入式系统嵌入式系统一般指非 PC 系统,有计算机功能但又不能称之为计算机的设备或器材。

它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。

简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。

嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,嵌入式系统几乎包括了生活中的所有电器设备,如掌上PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。

嵌入式系统的硬件部分,包括处理器/微处理器、存储器及外设器件和 I/O端口、图形控制器等。

嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用EPROM、EEPROM 或闪存(Flash Memory)作为存储介质。

软件部分包括操作系统软件(要求实时和多任务操作)和应用程序编程。

应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

linux常见文件系统格式

Linux系统常见的文件系统格式包括:1. JFS(Journaling Flash File System):由瑞典Axis Communications公司为嵌入式系统开发的闪存文件系统,JFFS2是RedHat公司基于JFFS开发的闪存文件系统,主要用于NOR型闪存,基于MTD驱动层。

2. YAFFS/YAFFS2(Yet Another Flash File System):专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。

与JFFS2相比,它减少一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。

3. VFAT(Virtual FAT):Windows操作系统使用的FAT文件系统在Linux下的实现。

4. NTFS(New Technology File System):Windows NT及后续版本使用的磁盘文件系统,具有较高的稳定性和性能。

5. HPFS(High Performance File System):OS/2操作系统使用的文件系统,具有较好的性能和稳定性。

6. NFS(Network File System):一种分布式文件系统,允许多台计算机通过网络共享文件和目录。

7. SMB(Server Message Block):一种用于网络共享文件的协议,常用于Windows和Linux 之间的文件共享。

8. Proc(Process File System):一种虚拟文件系统,用于访问Linux内核进程的信息。

9. ext(Extended File System):是Linux系统最早的文件系统类型之一,具有较好的性能和稳定性。

ext2、ext3和ext4都是ext的改进版本。

10. XFS(Extended I/O File System):一种高性能的日志文件系统,适合大容量存储设备。

11. Minix:一种小型的类Unix文件系统,主要用于教育和开发。

ARM Cortex-A9多核嵌入式系统开发教程(杨福刚)章 (13)

表10.9 NAND Flash控制寄存器(NFSTAT)
第10章 Nand Flash控制器
10.3 Nand Flash编程实例
10.3.1 电路连接 图10.7是K9GAG08U0E电路连接图。由图可知,电路连
接比较简单,其中Xm0DATA0~Xm0DATA7为命令、地址、 数据复用8位数据传输的引脚,其他控制引脚的连接如图 所示。
2. NAND Flash控制寄存器(NFCONT) 该寄存器用于配置NAND Flash的各种控制参数,如表10.5 所示。
第10章 Nand Flash控制器
表10.5 NAND Flash控制寄存器(NFCONT)
第10章 Nand Flash控制器
3. NAND Flash命令寄存器(NFCMMD) 该寄存器用于存储NAND Flash的命令值,如表10.6所示。
1页 = 8K字节 + 436字节(空闲区域)
1块 = (8K + 436)字节 × 128页 = (1M + 54.5K)字节
总容量 = 2076块 × 128页 × (8K + 436)字节 = (16
608M + 883.9M)比特
265,728 页 (=2.076块)
8 K字节
436 字节
1 块=128页 (1M+54.5K)字节
1 页=(8K+436)字节 1 块=(8K+436)字节×128页
=17 491M比特
8 比特
8 K字节
Байду номын сангаас
I/O0~I/O7 436 字节
图10.2 K9GAG08U0E 结构图
第10章 Nand Flash控制器

嵌入式Linux NFS根文件系统的构建及研究

嵌入式Linux NFS根文件系统的构建及研究作者:康天下支剑锋来源:《现代电子技术》2012年第04期摘要:在嵌入式Linux系统开发过程中,根文件系统是构建嵌入式Linux系统的重要组成部分。

为了方便和简化嵌入式Linux开发过程中的调试过程,主要研究了如何使用Busybox构建出基本的嵌入式Linux根文件系统,包括Busybox的配置、编译和安装。

在此基础上,进一步构建出基于NFS的嵌入式Linux根文件系统,并给出了启动脚本和配置文件。

这种根文件系统可以方便地在线更改、调试程序,降低了嵌入式系统的开发门槛。

关键词:NFS; Busybox;根文件系统; S3C2440; Linux中图分类号:; TP311文献标识码:A文章编号:Construction and research of embedded Linux NFS root file system(Xi’an University of Science and Technology, Xi’an 710054, China)Abstract: In the process of the embedded Linux system development, the root file system is an important part of building the embedded Linux system. In order to facilitate and simplify the debugging phase of embedded Linux development process, this paper mainly researches how to build a basic embedded Linux root file system with Busybox, including the configuration, installation andembedded Linux root file system was built. The startup script and configuration file are given in this paper. This root file system can be easily changed and debugged online, and reduces the threshold of embedded systems development.Keywords: NFS; Busybox; root file system; S3C2440; Linux收稿日期:随着信息技术的发展,嵌入式系统技术已经广泛应用于国防、通信、工业控制、消费电子等诸多领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要摘要 Flash存储器由于体积小、功耗低、性能稳定等特点在便携式电子产品中得到了广泛的应用。Flash存储器主要有两种形式:Nor Flash和Nand Flash. Nor Flash具有XIP特性,可以直接在芯片上执行代码,而且读取速度较快。Nand Flash存储密度高、容量大、生产工艺简单、性价比高,但是控制方式复杂而且可能会存在一定的坏块。根据各自的特点,这两种Flash存储器分别用于不同的系统中。 805plus微处理器是由东南大学国家专用集成电路系统工程技术研究中心和北京大学微处理器研究开发中心共同设计的32位移动终端应用处理器,面向低成本手持设备和其它通用嵌入式设备。本课题的研究和实现基于采用805plus平台设计开发的媒体播放器,提出了在嵌入式Linux系统中的Flash存储系统的硬件和软件方案。系统采用了Nor和Nand Flash结合的方案,在Nor Flash上存储与系统相关的软件和程序,在Nand Flash上存储用户数据和多媒体数据。 在嵌入式Linux中的Flash存储系统的设计和实现主要包括两个部分:一部分是Flash芯片驱动。本文结合805plus芯片提供的EMI控制器和Nand控制器以及DMA和中断控制器分别实现了Nor和Nand Flash的读写擦除等基本的操作,从而实现对Flash芯片以及其介质上数据访问和控制,在这个基础上按照Linux MTD设备驱动机制实现相关的设备驱动。Flash芯片驱动与硬件平台的相关性很大,这是本文的主要内容。另外一个部分是实现Flash上的数据管理。本文分别根据Nor和Nand Flash数据存储和操作特点提出了Flash上数据管理的要求,分析了JFFS2和、AFFS的特点以及各自的存储方式、断电保护、损耗平衡、垃圾回收等一系列的策略和机制,并在此基础上分别在Nor和Nand Flash上实现并优化了这些管理机制。 本文最后根据平台特点进行Linux源代码的配置和编译,并在硬件平台上进行了功能验证。

关键字:Flash. Linux, MID, 805plus. UniCore、数据管理、文件系统东南大学硕士学位论文Abstract Flash memories have been widely used due to their small size, low power consumption,characterized by stable performance in portable electronic products. Flash memory mainly in twoforms: Nor Flash and Nand Flash. Nor Flash supports XIP-the codes can be executed directly inthe chip, and high reading speed. Nand Flash memory has high density and large capacity, simpleproduction technology, the high performance-price ratio. However, its control is complex and hasa certain degree of bad blocks. The two kinds of Flash memory can be used in diferent systemsaccording to their own characteristics. 805plus is designed by Southeast University National ASIC System Engineering TechnologyResearch Center and the MPRC of Beijing University. It's a 32-bit mobile terminal applicationprocessor, geared to low-cost handheld device and other common embedded devices. Based on themedia player using 805plus platform, the total solutions of hardware and software of Flash Systemin embedded Linux are proposed in this article, and the solutions are realized in the system. Acombination of Nor and Nand Flash is used in the system. We store the program of system relateddata on Nor Flash, and users' data on Nand Flash. There are two main jobs of using Flash memory in embedded Linux: The first is Flash driver.We access and control the Nor and Nand Flash by using EMI controller and related DMA andinterrupt controller in 805plus ch币,then realize Flash driver according to the Linux MTDMechanism. Flash driver is the main job of this article because it is hardware platform related. Thesecond is the data management on Flash. We propose the data management requirements based onthe characteristics of Flash, then analyze a series of strategies and mechanisms about data store,power failure protection, ̄leveling, garbage collection and etc, and optimize thesemechanisms to achieve. Finally the source code of Linux is configured and compiled considering the feature of ourplatform. The function verification results show that this solution works well.

Key Words: Flash, Linux, MTD, 805plus, UniCore, data management, file system东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。

研究生签名:禅。期 .砷.《了

东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。论文的公布(包括刊登)授权东南大学研究生院办理。

研究生签名:豫夔导师签名平禽一日期:第一章绪论第一章绪论

1.1课题背景 在PC发展的同时,我们注意到另外一个分支一嵌入式系统电子产品也迅猛发展。嵌入式系统是指以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统川。 这类产品涉及到人们工作生活的方方面面,像手机,PDA, MP3,电视机顶盒,自动售货机,医疗设备等等。它在体积,功耗,功能方面有着与PC所不同的特点。随着嵌入式系统越来越追求数字化、网络化和智能化,原来在某些设备或领域中占主导地位的单片机和无操作系统的软件已经越来越难以为继。这对我们的软硬件系统提出了新的要求。 在软件方面,由于要求有多任务、实时性、网络、数据存储、用户交互、协同开发等功能,采用嵌入式操作系统比传统的控制循环更为合适。嵌入式操作系统是嵌入式系统的灵魂,它的出现大大提高了嵌入式系统开发的效率,减少了系统开发的工作量,提高了嵌入式软件的可移植性。目前存在的嵌入式操作系统有很多种,其中比较著名的有:VxWorks, Neculeus, WinCE, PalmOS等等,但是这些系统都是商业的,价格昂贵。而Linux则是开放源码的,而且它具有内核小、功能强大、运行稳定、系统健壮、效率高等特点;它易于定制剪裁,并且支持多达数十种CPU芯片;它有大量的且不断增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境:此外,在图像处理、文件管理及多任务支持等诸多方面,Linux的表现都非常出色,因此它不仅可以充当嵌入式系统的开发平台,其本身也是嵌入式系统应用开发的好工具。嵌入式Linux是将通用Linux操作系统进行裁剪、修改,使之能在嵌入式计算机系统上运行的一种操作系统。它既继承了通用Linux的优点,又具有嵌入式操作系统的特性。 嵌入式系统的硬件平台是功能实现和操作系统运行的载体,其中使用的处理器一般是RISC的CPU和集成许多外围功能电路模块的SOC芯片。8051芯片在传统领域有着一定的市场,但是随着功能要求的提高,它已经越来越不能满足要求,以ARM为Core的Soc芯片像Samsung的2410,Intel的XScale以及Seuic的Garfield等芯片目前得到了广泛的应用。在这个领域自主知识产权的意义显得尤其重要,特别是在一些敏感领域的使用。基于Unicore的805plus处理器作为东南大学与北京大学合作的自土知识产权的嵌入式系统SOC芯片在我们的系统中得到了应用。 硬件平台的另外一个重要方面就是存储系统,它也是嵌入式操作系统的重要组成部分。嵌入式设备的低功耗,便携等特点,使得传统PC上的软盘,硬盘,光盘等存储设备在这上面使用不太合适。这里的存储器要求体积小,功耗低,抗震动,数据不易丢失等特点。对于系统运行的程序部分内容较固定但要求能够可靠的保存和运行,而用户保存的数据则要求容量大而且要经常修改。 目前在便携式设备的市场上,Flash是最流行的存储设备,手机、PDA, MP3随身听和USB Storage等都大量使用了Flash作为存储设备。Flash存储设备有两种技术:一种是目前广泛使用的Nor Flash. NorFlash具有XIP (eXecute In Place)特性,可直接在芯片上执行代码,而且随机读取速度快。在目前便携式设备对于容量要求不是很高的情况下得到了广泛使用。另一种就是目前被业界看好的Nand Flash, NandFlash有着很高的存储密度,而且生产工艺也很简单。相对于Nor Flash的高成本和低容量,Nand Flash以其高的容量阶格比显现出强劲的市场竞争力,它的出现为提高存储容量和降低产品的成本提供了很好的解决方案。由于Nand Flash没有独立的地址线,必须以复杂的v0时序进行访问,并且由于工艺问题,NandFlash在出厂时可能有少量的坏块,所以在使用时必须考虑这方面的因素。在实际使用中可以根据具体方案的要求采用Nor或者Nand Flash.

相关文档
最新文档