数据访问方法及移动终端的制作方法

文档序号:6340273阅读:237来源:国知局
专利名称:数据访问方法及移动终端的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种数据访问方法及移动终端。
背景技术
随着移动终端的普及,尤其是智能手机的迅猛发展,不仅使人们的生活越来越方 便,也使人们享受到高科技带来的成果。智能移动终端如智能手机,因为其有强大的操作系 统,大容量的存储空间,可以方便地安装各种软件等诸多优点而越来越被人们接受。为了充 分利用智能手机的这些优点,电信运营商和移动运营商开发了各种增值业务,其中包括软 件版本的在线升级的业务。软件版本的在线升级是指通过无线网络,例如WIFI (Wireless Fidelity,无线保 真)网络,2G/3G网络,将软件版本的升级包下载到移动终端如手机,然后提示用户有新的 版本可以更新,用户选择更新之后,手机便自动安装升级包完成版本更新。版本在线升级需 要版本服务器的支持,版本服务器与手机终端之间有两种方式触发版本更新,一种是服务 器主动发起的,即有了新的升级包之后,版本服务器会主动给手机push (推送)一个消息, 告诉用户有新的版本需要更新;另一种方式是手机终端主动发起的升级方式,用户可以通 过设置定时检查更新或手动检查更新主动到服务器上查询有没有新的升级包,如果有则把 升级包下载下来完成更新。然而,上述软件版本的在线升级都是针对应用程序的。而对于移动终端如手机的 固件的升级,则需要将升级包以文件的形式下载到手机,存放在数据存储器Nand Flash的 用户数据区,用户数据区是文件系统的分区,只能通过文件系统的接口才能访问该分区的 数据。但是,在固件版本更新的过程中,不能直接在用户数据区进行更新,需要将升级包存 放在Nand Flash的二进制分区,而二进制分区对Android系统的应用层是不可见的,即手 机将升级包下载到手机之后,只能将其保存在文件系统分区,无法保存在二进制分区。而应 用层也无法直接操作二进制分区,进行数据访问,进而进行版本升级。

发明内容
本发明的主要目的在于提供一种数据访问方法及移动终端,以至少解决上述 Android系统的应用层也无法直接操作驱动层闪存的二进制分区,进行数据访问的问题。根据本发明的一个方面,提供了一种数据访问方法,应用于基于双核平台的 Android系统,包括=Android系统的访问接口接收应用层的访问指令,访问接口设置于应 用层与驱动层之间;访问接口根据访问指令对驱动层的闪存的二进制分区进行数据访问。根据本发明的另一方面,提供了一种移动终端,使用基于双核平台的Android系 统,包括访问接口模块,用于接收应用层的访问指令,访问接口模块设置于应用层与驱动 层之间;根据访问指令对驱动层的闪存的二进制分区进行数据访问。通过本发明,采用在基于双核平台的Android系统的应用层和驱动层之间,设置 访问接口,应用层通过调用访问接口操作驱动层闪存的二进制分区,以对二进制分区进行数据访问,解决了 Android系统的应用层也无法直接操作驱动层闪存的二进制分区,进行 数据访问的问题,进而达到了 Android系统的应用层通过访问接口直接操作驱动层闪存的 二进制分区,进行数据访问的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图1是根据本发明实施例的一种基于双核平台的Android系统的驱动层闪存 flash分区的示意图;图2是根据本发明实施例一的一种数据访问方法的步骤流程图;图3是根据本发明实施例二的一种数据访问方法的步骤流程图;图4是根据本发明实施例三的一种数据访问方法的步骤流程图;图5是根据本发明实施例的一种实现arm9分区和armll分区互相访问的步骤流 程图;图6是根据本发明实施例的一种读flash函数的流程图;图7是根据本发明实施例的一种写flash函数的流程图;图8是根据本发明实施例的一种从文件系统分区中读文件函数的流程图;图9是根据本发明实施例的一种访问接口的控制流程图;图10是根据本发明实施例的一种移动终端的结构框图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。为便于理解本发明,下面首先对基于双核平台的Android系统作以说明。Android系统是Google (谷歌)于2007年11月6日推出的移动手机平台。Android 手机平台由Google与开放式的手机联盟Open Handset Alliance(OHA)联合开发。Android 系统的架构分为四层,分别是Application (应用层),Application Framework(应用框 架层),Library&Virtual Machine (库及虚拟机层),Linux Kernel(内核层)。其中, Application和App 1 i cat ion Framework在本发明中均称为Andro i d系统的应用层,而驱动 层则属于Linux Kernel,在应用层和Linux Kernel之间还有一个Java虚拟机,这种分层结 构决定了应用层和Linux Kernel之间是相对独立的。本发明中的双核平台以高通的7x25、7x27平台为例,高通的7x25、7x27平台是双 核系统,由一块arm9和一块armll组成,双核共用一块驱动层闪存flash,该flash —部分 划给arm9,另一部分划给armll。现有技术中,高通提供的BSP(Board SupportPacket,板级 支持软件包)中arm9无权限访问armll侧的flash分区,armll也无权限访问arm9侧的 flash分区。若想通过应用层直接操作驱动层闪存的二进制分区进行数据访问,进而进行版本 升级。当用于升级的升级包文件存放在armll侧时,如果要在arm9侧实现软件版本的更新, 则必须将升级包放在arm9侧的二进制分区中。为此,首先需要armll有权限访问arm9侧的分区,同时,要在arm9侧更新armll侧的版本镜像,arm9也要有权限访问armll侧的分 区。其次,Android系统的应用层能够操作驱动层的flash,进而在双核系统flash分区相 互访问的基础上,实现应用层对驱动层闪存二进制分区的数据访问和版本升级。有鉴于此,本发明提供了一种数据访问方法和移动终端,基于Android操作系统 和高通的7x25、7x27等双核平台,使Android系统的应用层能够操作驱动层的flash,从而 实现数据访问,进而实现终端软件版本在线升级的功能。

参照图1,示出了根据本发明实施例的一种基于双核平台的Android系统的驱动 层闪存flash分区的示意图。如图1所示,基于双核的Android系统使用一块flash,一部分划分给arm9,一部 分划分给 armll。arm9 侧的分区包括 mibib, qcsbl, oemsbl, amss, fota, appsbl 等,armll 侧的分区包括recovery (恢复),boot (启动),misc, cache (缓存),system(系统), userdata(用户数据)等,其中cache,system,userdata属于文件系统分区,其余的均为二 进制分区。在进行软件版本升级的时候,升级包以文件的形式存放在userdata分区,这时, 需要通过访问接口,如设定应用程序fota_api把升级包从userdata分区拷贝到fota分 区,同时向fota分区和misc分区写升级标志。其中,fota_api用以直接操作驱动层flash 的接口函数,完成对flash的不同操作,包括读、写、复制、坏块管理等。以下实施例均可采用图1所示的flash结构。参照图2,示出了根据本发明实施例一的一种数据访问方法的步骤流程图,本实施 例基于高通的7x25、7x27等双核平台和Android操作系统。本实施例的数据访问方法包括以下步骤步骤S202 =Android系统的访问接口接收应用层的访问指令;其中,访问接口设置于Android系统的应用层与驱动层之间,可以直接操作驱动 层flash的接口函数,对flash进行各种操作,并向应用层返回操作结果。步骤S204 访问接口根据访问指令对驱动层的闪存的二进制分区进行数据访问。优选的,高通7x25、7x27双核平台共用一个驱动层的闪存,该驱动层的闪存包括 对应于双核平台的第一二进制分区和第二二进制分区,如图1所示的arm9侧分区和armll 侧分区。相关技术中,应用层无法访问和操作驱动层闪存的二进制分区。通过本实施例,采 用在基于双核平台的Android系统的应用层和驱动层之间,设置访问接口,应用层通过调 用访问接口操作驱动层闪存的二进制分区,以对二进制分区进行数据访问,解决了 Android 系统的应用层也无法直接操作驱动层闪存的二进制分区,进行数据访问的问题,进而达到 了 Android系统的应用层通过访问接口直接操作驱动层闪存的二进制分区,进行数据访问 的效果。参照图3,示出了根据本发明实施例二的一种数据访问方法的步骤流程图。本实施 例中,首先实现高通的7x25、7x27等双核平台共用一块flash的情况下,flash分区之间的 相互访问;在实现了分区相互访问的基础上,提供了一个应用程序作为访问接口,该应用程 序不同于应用层的应用程序,它为应用层的应用程序提供了一套接口,同时它又可以直接 操作驱动层flash的接口函数;进而,通过该访问接口实现了应用层对二进制分区的访问 和操作。
本实施例针对Android系统的架构,将作为访问接口的应用程序取名为fota_ api,该程序是一个可执行程序,可以通过控制台单独运行。应用层可以通过调用接口,如 runScriptAsRootC fota_api\n〃,res, 20000)来运行 fota_api,通过输入不同的参数, fota_api可以完成对flash的不同操作,以下是f0ta_api提供给应用层的一些接口,包 括. /fota_api 1 向armll侧的二进制分区写升级的标志. /fota_api 00x5a5a0001 向arm9侧的二进制分区写升级的标志. /fota_api 20x5a6b0800 将升级包从文件系统分区读出,然后拷贝到arm9侧的 二进制分区。但不限于此,本领域技术人员还可以根据实际需要,适当设置其它接口,以实现其 它功能等,本发明对此不作限制。根据不同的访问参数,fota_api可以完成不同的对flash的操作。这些访问参 数包括以下至少之一读参数、写参数、复制参数、擦除参数和坏块管理参数。其中,读参数 用于指示fota_api读取第一二进制分区和/或第二二进制分区的数据;写参数用于指示 fota_api对第一二进制分区和/或第二二进制分区写升级的标志,如fota_api在接收到 写参数后,根据实际情况,使用“./fota_api 1”向armll侧的二进制分区写升级的标志,或 者,使用“./fota_api 0 0x5a5a0001"向arm9侧的二进制分区写升级的标志;复制参数用 于指示f0ta_api从文件系统分区读取数据,并复制到第 一二进制分区和/或第二二进制分 区,如f0ta_api接收到复制参数后,使用“./fota_api 20X5a6b0800”将升级包从文件系统 分区读出,然后拷贝到arm9侧的二进制分区;擦除参数用于指示fota_api删除第一二进制 分区和/或第二二进制分区中的数据块;坏块管理参数用于指示fota_api对第一二进制分 区和/或第二二进制分区中损坏的数据块进行管理。通过可执行程序f0ta_api,实现了一套操作flash的接口函数,这部分接口能够 实现对flash 二进制分区的读操作和写操作,还可以适当设置,实现对flash 二进制分区的 擦除操作、以及简单的坏块管理功能等。此外,还可以实现对文件系统的读操作,把数据从 文件系统分区读出来,并获取文件的大小等信息,然后再将数据写入二进制分区,以实现版 本升级等。基于以上设置,本实施例以软件升级为例对本发明的数据访问方法作以说明,包 括以下步骤步骤S302 设置arm9和arml 1之间相互访问的权限;本实施例中,设定arm9为第一二进制分区,armll为第二二进制分区。则在本步 骤中,分别修改MPU(Micro Processor Unit,微处理器)寄存器的值,以分别打开arm9访问 armll的权限和armll访问arm9的权限。并且,在arm9的分区中添加armll分区的描述, 即把armll作为arm9侧的一个MTD (Memory Technology Device,内存技术设备)设备,从 而实现arm9对armll的访问;同样,在armll的分区中添加arm9分区的描述,即把arm9作 为armll侧的一个MTD设备,从而实现armll对arm9的访问。步骤S304 从armll侧的文件系统分区读取升级包的数据;本实施例采用图1所示的flash结构,由图1描述可知,用于升级的升级包的数据 存放在armll侧的userdata中。本步骤中,应用层发送的访问指令中包含复制参数,指示fota_api将armll侧的userdata中的数据复制到arm9侧的fota分区中。步骤S306 将读取出的升级包的数据写入arm9侧的fota分区中;步骤S308 分别在arm9侧和armll侧对软件版本进行升级。
通过本实施例,实现了基于双核平台的Android系统的应用层向驱动层flash的 二进制分区写入数据,进而实现软件版本的在线升级的功能。参照图4,示出了根据本发明实施例三的一种数据访问方法的步骤流程图。本实施 例为实现数据访问的整体流程,包括以下步骤步骤S402 设置armll能够访问arm9侧的fota分区。步骤S404 设置arm9能够访问armll侧的分区。步骤S406 实现读写flash的函数接口。步骤S408 实现从文件系统中读文件的函数接口。步骤S410 实现应用程序f0ta_api的控制流程。以下以f0ta_api作为访问接口为例,分别对图4所示数据访问方法中的应用层通 过访问接口对驱动层flash进行不同操作作以说明。为了实现应用层对驱动层flash的操作,需要首先实现flash的不同分区间的相 互访问。参照图5,示出了根据本发明实施例的一种实现arm9分区和armll分区互相访问 的步骤流程图,包括以下步骤步骤S502 设置armll访问arm9侧fota分区的权限,因为fota分区为arm9侧 的分区,而fota_api运行在armll侧,所以必须实现在armll侧访问fota分区。具体的,首先修改MPU寄存器的值,打开armll访问fota分区的权限,然后,在 armll侧的分区表中添加fota分区的描述,即把fota分区作为armll侧的一个MTD设备, 这样armll就可以访问fota分区了。步骤S504 设置arm9访问armll分区的权限,因为实现软件版本升级的代码在 arm9侧,要实现对armll侧的recovery,boot等二进制分区的升级,arm9必须具有访问 armll侧分区的权限。具体的,修改MPU寄存器的值,打开arm9访问armll分区的权限,然后将armll侧 的分区表加入到arm9侧的分区表中,这样arm9就可以访问到armll侧的分区了。经过上述两个步骤的准备,就可以编写操作flash的函数了,这些函数包括读函 数、写函数、擦除函数、以及坏块管理函数,从而实现对flash的不同操作。参照图6,示出了根据本发明实施例的一种读flash函数的流程图,包括以下步 骤步骤S602 获取分区信息。其中,分区信息包括分区的起始地址,分区的大小,页大小,块大小等。步骤S604 根据输入的地址,计算要读取的数据在该分区的位置。步骤S606 根据计算出的位置,从指定地址读取数据。步骤S608 判断有没有发生ECC (Error Checking and Correcting,错误检查和纠 正)校验错误,如果是,转步骤S610 ;如果否,转步骤S612。步骤S610 如果发生ECC检验错误,则继续读取下一个block(数据块)的数据, 返回步骤S608。
步骤S612 如果没有发生ECC校验错误,判断当前block是不是坏块,如果是,转 步骤S614 ;如果否,转步骤S616。步骤S614 如果是坏块,则继续读取下一个block的数据,返回步骤S612。步骤S616 如果不是坏块,则读取数据成功,将数据返回。参照图7,示出了根据本发明实施例的一种写flash函数的流程图,包括以下步 骤步骤S702 获取分区信息。其中,分区信息包括分区的起始地址,分区的大小,页大小,块大小等。步骤S704 将要待写入block (数据块)的数据全部读出来,然后编辑要写入数 据 的部分。步骤S706 判断将要写入的块是不是坏块,如果是,转步骤S708 ;如果否,转步骤 S710。步骤S708:如果是坏块,写入数据的地址向后偏移一个数据块block,返回步骤 S706。步骤S710 如果不是坏块,则擦除该数据块。步骤S712 将数据写入指定的block中。步骤S714 将写入的数据再读出,确认写入的数据是正确的。该步骤为优选步骤,以确定写入数据的正确性。本实施例中,坏块管理机制的原理是在调用写函数之前,扫描整个分区,如果该 分区中存在坏块则将坏块放在一个坏块表中,在写数据的时候,依次判断要写入的块与分 区起始地址之间是否存在坏块,如果存在坏块,则写入的数据整体向后偏移一个block。如 果在写数据的过程中新产生了一个坏块,则将新的坏块加入到坏块表中,同时写入的数据 向后偏移一个block。通过上述读写过程,实现了对flash 二进制分区的读写函数以及坏块管理机制, 不过对于软件升级来说,仅此还是不够的,还要实现从flash的文件系统分区读文件的功 能,图8示出了如何从文件系统分区中读取文件的过程。参照图8,示出了根据本发明实施例的一种从文件系统分区中读文件函数的流程 图,包括以下步骤步骤S802 根据文件名打开文件系统分区中的文件。本实施例中,该文件存放于armll侧的用户数据userdata分区中。步骤S804 获取文件的大小的信息。步骤S806 根据文件大小的信息将文件读出。通过将图8所示读文件过程和图7所示写文件过程结合起来,就实现了将文件从 userdata分区读出来,然后写到fota分区的操作了。参照图9,示出了根据本发明实施例的一种访问接口的控制流程图。本实施例实现应用程序f0ta_api的控制流程,fota_api被编译为一个可执 行程序,存在于系统的system/bin目录下,Android系统的应用层可以通过接口函数 runScriptAsRoot ()来运行fota_api,通过传入不同的参数,fita_api可以完成不同的操 作,目前通过fota_api可以实现的操作包括向misc分区写升级system的标志;向fota分区写升级二进制分区的标志;将升级包从userdata分区拷贝到fota分区等,根据需要, 还可以扩展其他操作。本实施例的应用程序f0ta_api的控制流程包括以下步骤步骤S902 如果fota_api的参数为1,则向misc分区写升级标志0x5a5a0001。步骤S904 如果fota_api的参数为00x5a5a0001,则向fota分区写升级标志 0x5a5a0001。步骤S906 如果f0ta_api的参数为10,则将在fota分区的表示升级是否成功的
标志清零。步骤S908 如果fota_api的参数为20x5a6b0800,则向fota分区写升级包的类 型,同时将升级包从userdata(用户数据)分区拷贝到fota分区。通过图5至图9所示实施例,在进行软件版本升级的时候,升级包以文件的形式存 放在armll的userdata分区,通过应用程序fota_api把升级包从userdata分区拷贝到 arm9的fota分区,同时向fota分区和misc分区写升级标志,从而实现软件版本的升级。参照图10,示出了根据本发明实施例的一种移动终端的结构框图,该移动终端使 用基于双核平台的Android系统,包括访问接口模块1002,用于接收应用层的访问指令,该访问接口模块1002设置于 Android系统的应用层与驱动层之间;根据访问指令对驱动层的闪存的二进制分区进行数 据访问;优选的,双核平台共用一个驱动层的闪存,驱动层的闪存包括对应于双核平台的第 一二进制分区和第二二进制分区,如arm9和armll。优选的,双核平台为高通的7x25和7x27平台。优选的,本实施例的移动终端还包括设置模块1004,用于设置MPU的寄存器的 值,使第一和第二二进制分区实现相互访问。优选的,设置模块1004包括第一设置模块,用于设置MPU寄存器的值,打开第 二二进制分区访问第一二进制分区的权限,并在第二二进制分区的分区表中增加第一二进 制分区的描述;第二设置模块,用于设置MPU寄存器的值,打开第一二进制分区访问第一二 进制分区的权限,并在第一二进制分区的分区表中增加第二二进制分区的描述。优选的,访问指令中包括访问参数,访问参数包括读参数、写参数、复制参数,读参 数用于指示访问接口读取第一二进制分区和/或第二二进制分区的数据,写参数用于指示 访问接口对第一二进制分区和/或第二二进制分区写升级的标志,复制参数用于指示访问 接口从文件系统分区读取数据,并复制到第一二进制分区和/或第二二进制分区。优选的,访问指令中还包括擦除参数和坏块管理参数,擦除参数用于指示访问接 口删除第一二进制分区和/或第二二进制分区中的数据块,坏块管理参数用于指示访问接 口对第一二进制分区和/或第二二进制分区中损坏的数据块进行管理。优选的,当访问指令中包括读参数时,访问接口模块1002根据第一或第二二进制 分区的分区信息,获取待读取数据在第一或第二二进制分区的位置,并读取该位置的数据 块的数据;判断读取数据时是否发生读取错误;若是,则继续读取下一数据块数据;若否, 则读取待读取的数据,并通过访问接口返回给应用层。优选的,当访问指令中包括写参数时,访问接口模块1002根据第一或第二二进制 分区的分区信息,获取待写入数据在第一或第二二进制分区的写入位置;判断写入位置所在的数据块是否是块坏;若是,则将写入位置向后偏移一个数据块;若否,则删除写入位置 所在的数据块的数据,并将待写入数据写入该数据块。优选的,在将待写入数据写入该数据 块之后,将写入该数据块的数据再读出,确认写入的数据为正确数据。优选的,当访问指令中包括坏块管理参数时,访问接口模块1002扫描第一二进制 分区和第二二进制分区,判断第一二进制分区和第二二进制分区中存在损坏的数据块;使 用坏块表存储损坏的数据块的信息。需要说明的是,本发明的多个实施例均以双核平台为高通的7x25和7x27平台为 例,但不限于此,本领域技术人员可以根据实际情况,参照高通的7x25和7x27双核平台进 行数据访问,本发明对此不作限制。从以上的描述中,可以看出,本发明对嵌入式系统领域的数据访问技术,尤其是嵌 入式上层应用对数据存储器直接访问的技术进行了改进,在基于双核的Android系统中, 实现了应用层操作驱动层flash,使得应用层可以向flash的二进制分区写入任何数据,从 而实现了数据访问和软件版本的在线升级功能。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据访问方法,应用于基于双核平台的Android系统,其特征在于,包括Android系统的访问接口接收应用层的访问指令,所述访问接口设置于所述应用层与驱动层之间;所述访问接口根据所述访问指令对所述驱动层的闪存的二进制分区进行数据访问。
2.根据权利要求1所述的方法,其特征在于,所述双核平台共用一个所述驱动层的闪 存,所述驱动层的闪存的二进制分区包括对应于所述双核平台的第一二进制分区和第二二 进制分区。
3.根据权利要求2所述的方法,其特征在于,所述第一和第二二进制分区通过设置微 处理器MPU的寄存器的值,实现相互访问。
4.根据权利要求3所述的方法,其特征在于,所述第一和第二二进制分区通过设置微 处理器MPU的寄存器的值,实现相互访问的步骤包括设置所述MPU寄存器的值,打开所述第二二进制分区访问所述第一二进制分区的权 限,并在所述第二二进制分区的分区表中增加所述第一二进制分区的描述;设置所述MPU寄存器的值,打开所述第一二进制分区访问所述第一二进制分区的权 限,并在所述第一二进制分区的分区表中增加所述第二二进制分区的描述。
5.根据权利要求2所述的方法,其特征在于,所述访问指令中包括访问参数,所述访问 参数包括读参数、写参数、复制参数,所述读参数用于指示所述访问接口读取所述第一二进 制分区和/或第二二进制分区的数据,所述写参数用于指示所述访问接口对第一二进制分 区和/或第二二进制分区写升级的标志,所述复制参数用于指示所述访问接口从文件系统 分区读取数据,并复制到第一二进制分区和/或第二二进制分区。
6.根据权利要求5所述的方法,其特征在于,所述访问指令中还包括擦除参数和坏块 管理参数,所述擦除参数用于指示所述访问接口删除所述第一二进制分区和/或第二二进 制分区中的数据块,所述坏块管理参数用于指示所述访问接口对所述第一二进制分区和/ 或第二二进制分区中损坏的数据块进行管理。
7.根据权利要求6所述的方法,其特征在于,当所述访问指令中包括所述读参数时,所 述访问接口根据所述访问指令对所述驱动层的闪存的二进制分区进行数据访问的步骤包 括所述访问接口根据所述第一或第二二进制分区的分区信息,获取待读取数据在所述第 一或第二二进制分区的位置,并读取该位置的数据块的数据;判断读取数据时是否发生读取错误;若是,则继续读取下一数据块数据;若否,则读取所述待读取的数据,并通过所述访问 接口返回给所述应用层。
8.根据权利要求6所述的方法,其特征在于,当所述访问指令中包括所述写参数时,所 述访问接口根据所述访问指令对所述驱动层的闪存的二进制分区进行数据访问的步骤包 括所述访问接口根据所述第一或第二二进制分区的分区信息,获取待写入数据在所述第 一或第二二进制分区的写入位置;判断所述写入位置所在的数据块是否是块坏;若是,则将所述写入位置向后偏移一个数据块;若否,则删除所述写入位置所在的数据块的数据,并将所述待写入数据写入该数据块。
9.根据权利要求8所述的方法,其特征在于,在将所述待写入数据写入该数据块的步 骤之后还包括将所述写入该数据块的数据再读出,确认所述写入的数据为正确数据。
10.根据权利要求6所述的方法,其特征在于,当所述访问指令中包括所述坏块管理参 数时,所述访问接口根据所述访问指令对所述驱动层的闪存的二进制分区进行数据访问的 步骤包括扫描所述第一二进制分区和第二二进制分区,判断所述第一二进制分区和第二二进制 分区中存在损坏的数据块;使用坏块表存储所述损坏的数据块的信息。
11.一种移动终端,使用基于双核平台的Android系统,其特征在于,包括访问接口模块,用于接收应用层的访问指令,所述访问接口模块设置于所述应用层与 驱动层之间;根据所述访问指令对所述驱动层的闪存的二进制分区进行数据访问。
12.根据权利要求11所述的移动终端,其特征在于,所述双核平台共用一个所述驱动 层的闪存,所述驱动层的闪存的二进制分区包括对应于所述双核平台的第一二进制分区和 第二二进制分区。
13.根据权利要求12所述的移动终端,其特征在于,还包括设置模块,用于设置微处理器MPU的寄存器的值,使所述第一和第二二进制分区实现 相互访问。
14.根据权利要求13所述的移动终端,其特征在于,所述设置模块包括第一设置模块,用于设置所述MPU寄存器的值,打开所述第二二进制分区访问所述第 一二进制分区的权限,并在所述第二二进制分区的分区表中增加所述第一二进制分区的描 述;第二设置模块,用于设置所述MPU寄存器的值,打开所述第一二进制分区访问所述第 一二进制分区的权限,并在所述第一二进制分区的分区表中增加所述第二二进制分区的描 述。
全文摘要
本发明公开了一种数据访问方法及移动终端,其中,数据访问方法应用于基于双核平台的Android系统,包括Android系统的访问接口接收应用层的访问指令,访问接口设置于应用层与驱动层之间;访问接口根据访问指令对驱动层的闪存的二进制分区进行数据访问。通过本发明,达到了Android系统的应用层通过访问接口直接操作驱动层闪存的二进制分区,进行数据访问的效果。
文档编号G06F9/46GK102073541SQ201010609979
公开日2011年5月25日 申请日期2010年12月28日 优先权日2010年12月28日
发明者孟祥飞 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1