CN102073541A - 数据访问方法及移动终端 - Google Patents
数据访问方法及移动终端 Download PDFInfo
- Publication number
- CN102073541A CN102073541A CN2010106099794A CN201010609979A CN102073541A CN 102073541 A CN102073541 A CN 102073541A CN 2010106099794 A CN2010106099794 A CN 2010106099794A CN 201010609979 A CN201010609979 A CN 201010609979A CN 102073541 A CN102073541 A CN 102073541A
- Authority
- CN
- China
- Prior art keywords
- binary partitions
- data
- binary
- partitions
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种数据访问方法及移动终端,其中,数据访问方法应用于基于双核平台的Android系统,包括:Android系统的访问接口接收应用层的访问指令,访问接口设置于应用层与驱动层之间;访问接口根据访问指令对驱动层的闪存的二进制分区进行数据访问。通过本发明,达到了Android系统的应用层通过访问接口直接操作驱动层闪存的二进制分区,进行数据访问的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据访问方法及移动终端。
背景技术
随着移动终端的普及,尤其是智能手机的迅猛发展,不仅使人们的生活越来越方便,也使人们享受到高科技带来的成果。智能移动终端如智能手机,因为其有强大的操作系统,大容量的存储空间,可以方便地安装各种软件等诸多优点而越来越被人们接受。为了充分利用智能手机的这些优点,电信运营商和移动运营商开发了各种增值业务,其中包括软件版本的在线升级的业务。
软件版本的在线升级是指通过无线网络,例如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分区和arm11分区互相访问的步骤流程图;
图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和Application Framework在本发明中均称为Android系统的应用层,而驱动层则属于Linux Kernel,在应用层和Linux Kernel之间还有一个Java虚拟机,这种分层结构决定了应用层和Linux Kernel之间是相对独立的。
本发明中的双核平台以高通的7x25、7x27平台为例,高通的7x25、7x27平台是双核系统,由一块arm9和一块arm11组成,双核共用一块驱动层闪存flash,该flash一部分划给arm9,另一部分划给arm11。现有技术中,高通提供的BSP(Board SupportPacket,板级支持软件包)中arm9无权限访问arm11侧的flash分区,arm11也无权限访问arm9侧的flash分区。
若想通过应用层直接操作驱动层闪存的二进制分区进行数据访问,进而进行版本升级。当用于升级的升级包文件存放在arm11侧时,如果要在arm9侧实现软件版本的更新,则必须将升级包放在arm9侧的二进制分区中。为此,首先需要arm11有权限访问arm9侧的分区,同时,要在arm9侧更新arm11侧的版本镜像,arm9也要有权限访问arm11侧的分区。其次,Android系统的应用层能够操作驱动层的flash,进而在双核系统flash分区相互访问的基础上,实现应用层对驱动层闪存二进制分区的数据访问和版本升级。
有鉴于此,本发明提供了一种数据访问方法和移动终端,基于Android操作系统和高通的7x25、7x27等双核平台,使Android系统的应用层能够操作驱动层的flash,从而实现数据访问,进而实现终端软件版本在线升级的功能。
参照图1,示出了根据本发明实施例的一种基于双核平台的Android系统的驱动层闪存flash分区的示意图。
如图1所示,基于双核的Android系统使用一块flash,一部分划分给arm9,一部分划分给arm11。arm9侧的分区包括mibib,qcsbl,oemsbl,amss,fota,appsbl等,arm11侧的分区包括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侧分区和arm11侧分区。
相关技术中,应用层无法访问和操作驱动层闪存的二进制分区。通过本实施例,采用在基于双核平台的Android系统的应用层和驱动层之间,设置访问接口,应用层通过调用访问接口操作驱动层闪存的二进制分区,以对二进制分区进行数据访问,解决了Android系统的应用层也无法直接操作驱动层闪存的二进制分区,进行数据访问的问题,进而达到了Android系统的应用层通过访问接口直接操作驱动层闪存的二进制分区,进行数据访问的效果。
参照图3,示出了根据本发明实施例二的一种数据访问方法的步骤流程图。本实施例中,首先实现高通的7x25、7x27等双核平台共用一块flash的情况下,flash分区之间的相互访问;在实现了分区相互访问的基础上,提供了一个应用程序作为访问接口,该应用程序不同于应用层的应用程序,它为应用层的应用程序提供了一套接口,同时它又可以直接操作驱动层flash的接口函数;进而,通过该访问接口实现了应用层对二进制分区的访问和操作。
本实施例针对Android系统的架构,将作为访问接口的应用程序取名为fota_api,该程序是一个可执行程序,可以通过控制台单独运行。应用层可以通过调用接口,如runScriptAsRoot(″fota_api\n″,res,20000)来运行fota_api,通过输入不同的参数,fota_api可以完成对flash的不同操作,以下是fota_api提供给应用层的一些接口,包括:
./fota_api 1:向arm11侧的二进制分区写升级的标志
./fota_api 00x5a5a0001:向arm9侧的二进制分区写升级的标志
./fota_api 20x5a6b0800:将升级包从文件系统分区读出,然后拷贝到arm9侧的二进制分区。
但不限于此,本领域技术人员还可以根据实际需要,适当设置其它接口,以实现其它功能等,本发明对此不作限制。
根据不同的访问参数,fota_api可以完成不同的对flash的操作。这些访问参数包括以下至少之一:读参数、写参数、复制参数、擦除参数和坏块管理参数。其中,读参数用于指示fota_api读取第一二进制分区和/或第二二进制分区的数据;写参数用于指示fota_api对第一二进制分区和/或第二二进制分区写升级的标志,如fota_api在接收到写参数后,根据实际情况,使用“./fota_api 1”向arm11侧的二进制分区写升级的标志,或者,使用“./fota_api 0 0x5a5a0001”向arm9侧的二进制分区写升级的标志;复制参数用于指示fota_api从文件系统分区读取数据,并复制到第一二进制分区和/或第二二进制分区,如fota_api接收到复制参数后,使用“./fota_api 20x5a6b0800”将升级包从文件系统分区读出,然后拷贝到arm9侧的二进制分区;擦除参数用于指示fota_api删除第一二进制分区和/或第二二进制分区中的数据块;坏块管理参数用于指示fota_api对第一二进制分区和/或第二二进制分区中损坏的数据块进行管理。
通过可执行程序fota_api,实现了一套操作flash的接口函数,这部分接口能够实现对flash二进制分区的读操作和写操作,还可以适当设置,实现对flash二进制分区的擦除操作、以及简单的坏块管理功能等。此外,还可以实现对文件系统的读操作,把数据从文件系统分区读出来,并获取文件的大小等信息,然后再将数据写入二进制分区,以实现版本升级等。
基于以上设置,本实施例以软件升级为例对本发明的数据访问方法作以说明,包括以下步骤:
步骤S302:设置arm9和arm11之间相互访问的权限;
本实施例中,设定arm9为第一二进制分区,arm11为第二二进制分区。则在本步骤中,分别修改MPU(Micro Processor Unit,微处理器)寄存器的值,以分别打开arm9访问arm11的权限和arm11访问arm9的权限。并且,在arm9的分区中添加arm11分区的描述,即把arm11作为arm9侧的一个MTD(Memory Technology Device,内存技术设备)设备,从而实现arm9对arm11的访问;同样,在arm11的分区中添加arm9分区的描述,即把arm9作为arm11侧的一个MTD设备,从而实现arm11对arm9的访问。
步骤S304:从arm11侧的文件系统分区读取升级包的数据;
本实施例采用图1所示的flash结构,由图1描述可知,用于升级的升级包的数据存放在arm11侧的userdata中。本步骤中,应用层发送的访问指令中包含复制参数,指示fota_api将arm11侧的userdata中的数据复制到arm9侧的fota分区中。
步骤S306:将读取出的升级包的数据写入arm9侧的fota分区中;
步骤S308:分别在arm9侧和arm11侧对软件版本进行升级。
通过本实施例,实现了基于双核平台的Android系统的应用层向驱动层flash的二进制分区写入数据,进而实现软件版本的在线升级的功能。
参照图4,示出了根据本发明实施例三的一种数据访问方法的步骤流程图。本实施例为实现数据访问的整体流程,包括以下步骤:
步骤S402:设置arm11能够访问arm9侧的fota分区。
步骤S404:设置arm9能够访问arm11侧的分区。
步骤S406:实现读写flash的函数接口。
步骤S408:实现从文件系统中读文件的函数接口。
步骤S410:实现应用程序fota_api的控制流程。
以下以fota_api作为访问接口为例,分别对图4所示数据访问方法中的应用层通过访问接口对驱动层flash进行不同操作作以说明。
为了实现应用层对驱动层flash的操作,需要首先实现flash的不同分区间的相互访问。参照图5,示出了根据本发明实施例的一种实现arm9分区和arm11分区互相访问的步骤流程图,包括以下步骤:
步骤S502:设置arm11访问arm9侧fota分区的权限,因为fota分区为arm9侧的分区,而fota_api运行在arm11侧,所以必须实现在arm11侧访问fota分区。
具体的,首先修改MPU寄存器的值,打开arm11访问fota分区的权限,然后,在arm11侧的分区表中添加fota分区的描述,即把fota分区作为arm11侧的一个MTD设备,这样arm11就可以访问fota分区了。
步骤S504:设置arm9访问arm11分区的权限,因为实现软件版本升级的代码在arm9侧,要实现对arm11侧的recovery,boot等二进制分区的升级,arm9必须具有访问arm11侧分区的权限。
具体的,修改MPU寄存器的值,打开arm9访问arm11分区的权限,然后将arm11侧的分区表加入到arm9侧的分区表中,这样arm9就可以访问到arm11侧的分区了。
经过上述两个步骤的准备,就可以编写操作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:根据文件名打开文件系统分区中的文件。
本实施例中,该文件存放于arm11侧的用户数据userdata分区中。
步骤S804:获取文件的大小的信息。
步骤S806:根据文件大小的信息将文件读出。
通过将图8所示读文件过程和图7所示写文件过程结合起来,就实现了将文件从userdata分区读出来,然后写到fota分区的操作了。
参照图9,示出了根据本发明实施例的一种访问接口的控制流程图。
本实施例实现应用程序fota_api的控制流程,fota_api被编译为一个可执行程序,存在于系统的system/bin目录下,Android系统的应用层可以通过接口函数runScriptAsRoot()来运行fota_api,通过传入不同的参数,fita_api可以完成不同的操作,目前通过fota_api可以实现的操作包括:向misc分区写升级system的标志;向fota分区写升级二进制分区的标志;将升级包从userdata分区拷贝到fota分区等,根据需要,还可以扩展其他操作。
本实施例的应用程序fota_api的控制流程包括以下步骤:
步骤S902:如果fota_api的参数为1,则向misc分区写升级标志0x5a5a0001。
步骤S904:如果fota_api的参数为00x5a5a0001,则向fota分区写升级标志0x5a5a0001。
步骤S906:如果fota_api的参数为10,则将在fota分区的表示升级是否成功的标志清零。
步骤S908:如果fota_api的参数为20x5a6b0800,则向fota分区写升级包的类型,同时将升级包从userdata(用户数据)分区拷贝到fota分区。
通过图5至图9所示实施例,在进行软件版本升级的时候,升级包以文件的形式存放在arm11的userdata分区,通过应用程序fota_api把升级包从userdata分区拷贝到arm9的fota分区,同时向fota分区和misc分区写升级标志,从而实现软件版本的升级。
参照图10,示出了根据本发明实施例的一种移动终端的结构框图,该移动终端使用基于双核平台的Android系统,包括:
访问接口模块1002,用于接收应用层的访问指令,该访问接口模块1002设置于Android系统的应用层与驱动层之间;根据访问指令对驱动层的闪存的二进制分区进行数据访问;优选的,双核平台共用一个驱动层的闪存,驱动层的闪存包括对应于双核平台的第一二进制分区和第二二进制分区,如arm9和arm11。
优选的,双核平台为高通的7x25和7x27平台。
优选的,本实施例的移动终端还包括:设置模块1004,用于设置MPU的寄存器的值,使第一和第二二进制分区实现相互访问。
优选的,设置模块1004包括:第一设置模块,用于设置MPU寄存器的值,打开第二二进制分区访问第一二进制分区的权限,并在第二二进制分区的分区表中增加第一二进制分区的描述;第二设置模块,用于设置MPU寄存器的值,打开第一二进制分区访问第一二进制分区的权限,并在第一二进制分区的分区表中增加第二二进制分区的描述。
优选的,访问指令中包括访问参数,访问参数包括读参数、写参数、复制参数,读参数用于指示访问接口读取第一二进制分区和/或第二二进制分区的数据,写参数用于指示访问接口对第一二进制分区和/或第二二进制分区写升级的标志,复制参数用于指示访问接口从文件系统分区读取数据,并复制到第一二进制分区和/或第二二进制分区。
优选的,访问指令中还包括擦除参数和坏块管理参数,擦除参数用于指示访问接口删除第一二进制分区和/或第二二进制分区中的数据块,坏块管理参数用于指示访问接口对第一二进制分区和/或第二二进制分区中损坏的数据块进行管理。
优选的,当访问指令中包括读参数时,访问接口模块1002根据第一或第二二进制分区的分区信息,获取待读取数据在第一或第二二进制分区的位置,并读取该位置的数据块的数据;判断读取数据时是否发生读取错误;若是,则继续读取下一数据块数据;若否,则读取待读取的数据,并通过访问接口返回给应用层。
优选的,当访问指令中包括写参数时,访问接口模块1002根据第一或第二二进制分区的分区信息,获取待写入数据在第一或第二二进制分区的写入位置;判断写入位置所在的数据块是否是块坏;若是,则将写入位置向后偏移一个数据块;若否,则删除写入位置所在的数据块的数据,并将待写入数据写入该数据块。优选的,在将待写入数据写入该数据块之后,将写入该数据块的数据再读出,确认写入的数据为正确数据。
优选的,当访问指令中包括坏块管理参数时,访问接口模块1002扫描第一二进制分区和第二二进制分区,判断第一二进制分区和第二二进制分区中存在损坏的数据块;使用坏块表存储损坏的数据块的信息。
需要说明的是,本发明的多个实施例均以双核平台为高通的7x25和7x27平台为例,但不限于此,本领域技术人员可以根据实际情况,参照高通的7x25和7x27双核平台进行数据访问,本发明对此不作限制。
从以上的描述中,可以看出,本发明对嵌入式系统领域的数据访问技术,尤其是嵌入式上层应用对数据存储器直接访问的技术进行了改进,在基于双核的Android系统中,实现了应用层操作驱动层flash,使得应用层可以向flash的二进制分区写入任何数据,从而实现了数据访问和软件版本的在线升级功能。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
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寄存器的值,打开所述第一二进制分区访问所述第一二进制分区的权限,并在所述第一二进制分区的分区表中增加所述第二二进制分区的描述。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010609979.4A CN102073541B (zh) | 2010-12-28 | 2010-12-28 | 数据访问方法及移动终端 |
PCT/CN2011/070939 WO2012088785A1 (zh) | 2010-12-28 | 2011-02-11 | 数据访问方法及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010609979.4A CN102073541B (zh) | 2010-12-28 | 2010-12-28 | 数据访问方法及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102073541A true CN102073541A (zh) | 2011-05-25 |
CN102073541B CN102073541B (zh) | 2015-05-20 |
Family
ID=44032087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010609979.4A Active CN102073541B (zh) | 2010-12-28 | 2010-12-28 | 数据访问方法及移动终端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102073541B (zh) |
WO (1) | WO2012088785A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521013A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 嵌入式系统中用虚拟机镜像替代nand存储器的方法 |
CN103309713A (zh) * | 2013-06-25 | 2013-09-18 | 北京小米科技有限责任公司 | 系统升级的方法、装置及设备 |
CN104320402A (zh) * | 2014-10-31 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于二进制算法的服务接口访问控制方法及系统 |
CN105915528A (zh) * | 2016-05-18 | 2016-08-31 | 江苏科技大学 | 基于VxWorks系统驱动层的数据访问监控系统及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670696A (zh) * | 2004-03-20 | 2005-09-21 | 鸿富锦精密工业(深圳)有限公司 | 更新bios程序之系统及方法 |
CN1716450A (zh) * | 2004-06-30 | 2006-01-04 | 深圳市朗科科技有限公司 | 对闪存数据的存取进行管理的方法 |
CN101446921A (zh) * | 2008-12-23 | 2009-06-03 | 青岛海信宽带多媒体技术股份有限公司 | 一种Flash存储器的动态存储方法 |
CN101467130A (zh) * | 2006-06-12 | 2009-06-24 | 惠普开发有限公司 | 在可分区系统中的分区之间共享数据 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101287187A (zh) * | 2007-04-12 | 2008-10-15 | 奥科无线通信技术(深圳)有限公司 | 智能手机及其操作系统运行方法 |
US20100299152A1 (en) * | 2009-05-20 | 2010-11-25 | Mobile Iron, Inc. | Selective Management of Mobile Devices in an Enterprise Environment |
CN101840341A (zh) * | 2010-04-01 | 2010-09-22 | 惠州Tcl移动通信有限公司 | 智能手机系统及其启动方法 |
CN101924607B (zh) * | 2010-08-27 | 2013-01-23 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
CN101924798B (zh) * | 2010-09-08 | 2012-11-21 | 北京大学 | 一种基于文件类型的Android构件透明加载方法及系统 |
-
2010
- 2010-12-28 CN CN201010609979.4A patent/CN102073541B/zh active Active
-
2011
- 2011-02-11 WO PCT/CN2011/070939 patent/WO2012088785A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1670696A (zh) * | 2004-03-20 | 2005-09-21 | 鸿富锦精密工业(深圳)有限公司 | 更新bios程序之系统及方法 |
CN1716450A (zh) * | 2004-06-30 | 2006-01-04 | 深圳市朗科科技有限公司 | 对闪存数据的存取进行管理的方法 |
CN101467130A (zh) * | 2006-06-12 | 2009-06-24 | 惠普开发有限公司 | 在可分区系统中的分区之间共享数据 |
CN101446921A (zh) * | 2008-12-23 | 2009-06-03 | 青岛海信宽带多媒体技术股份有限公司 | 一种Flash存储器的动态存储方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521013A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 嵌入式系统中用虚拟机镜像替代nand存储器的方法 |
CN102521013B (zh) * | 2011-11-30 | 2014-03-05 | 华中科技大学 | 嵌入式系统中用虚拟机镜像替代nand存储器的方法 |
CN103309713A (zh) * | 2013-06-25 | 2013-09-18 | 北京小米科技有限责任公司 | 系统升级的方法、装置及设备 |
CN104320402A (zh) * | 2014-10-31 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于二进制算法的服务接口访问控制方法及系统 |
CN104320402B (zh) * | 2014-10-31 | 2017-11-10 | 北京思特奇信息技术股份有限公司 | 一种基于二进制算法的服务接口访问控制方法及系统 |
CN105915528A (zh) * | 2016-05-18 | 2016-08-31 | 江苏科技大学 | 基于VxWorks系统驱动层的数据访问监控系统及其控制方法 |
CN105915528B (zh) * | 2016-05-18 | 2019-01-11 | 江苏科技大学 | 基于VxWorks系统驱动层的数据访问监控系统及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102073541B (zh) | 2015-05-20 |
WO2012088785A1 (zh) | 2012-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
US8539471B2 (en) | Updating firmware of an electronic device | |
US8196130B2 (en) | Tri-phase boot process in electronic devices | |
US8255892B2 (en) | Flash memory programming | |
CN106201613A (zh) | 预热软件安装 | |
EP2375323A1 (en) | Firmware image update and management | |
US20230393840A1 (en) | File update method and apparatus, device and storage medium | |
CN105843656A (zh) | 磁盘空间不足的系统升级方法、终端设备及服务器 | |
JP2010079440A (ja) | ファームウェア更新装置及び方法 | |
CN105988843A (zh) | 移动终端固件升级方法及固件升级装置 | |
CN102411506A (zh) | Java系统业务单元插件式管理系统及业务功能动态变更方法 | |
CN102270144A (zh) | 嵌入式网络设备及其更新固件的方法 | |
CN107643898A (zh) | 终端升级方法及装置 | |
CN102004657B (zh) | 一种电子设备及其升级方法 | |
CN103716346A (zh) | 一种安卓手机客户端上应用的管理方法和装置 | |
CN102073541B (zh) | 数据访问方法及移动终端 | |
CN105068834A (zh) | 系统升级方法及装置 | |
CN112015448A (zh) | 一种基于空中下载技术的系统升级方法及装置 | |
CN105867962A (zh) | 系统升级的方法和装置 | |
CN114780019A (zh) | 电子设备的管理方法、装置、电子设备及存储介质 | |
WO2019159715A1 (ja) | 車両制御装置およびプログラム更新システム | |
CN116594639A (zh) | 系统安装包的管理方法、设备、存储介质及程序产品 | |
CN109388416A (zh) | 一种应用软件的插件化实现方法及系统 | |
CN103488492A (zh) | 阅读器设备及其固件升级方法及装置 | |
CN113467797B (zh) | 程序更新方法、装置和系统以及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |