一种数据处理方法、系统及存储介质
文献发布时间:2023-06-19 11:52:33
技术领域
本发明涉及信息存储技术领域,尤其涉及的是一种数据处理方法、系统及存储介质。
背景技术
现在的电子设备均设有用于存储数据的存储设备,常见的存储设备如EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦可编程只读存储器)、FLASH等,均由驱动程序驱动以实现数据的读写操作以及数据的存储。因此,在需要进行数据读写操作时,电子设备的控制器将通过运行驱动程序来将数据写入到存储设备。
在嵌入式开发过程中,EEPROM由于其能够实现读写任意长度的数据,因此其读写简便,被市场所青睐,但是同时还具有价格高昂,存储容量小的缺点。外置存储介质具有价格低廉和存储容量大的优点,例如:Flash存储介质,但是由于其读写数据只能以页为单位,这就大大限制了其使用范围和简易性。当应用层通过运行驱动程序将数据读写到存储设备时,由于需要以页为单位将数据读写到外置存储介质,因此导致应用层运行时间较长,处理数据的效率低,用户等待时间较久等缺陷。
因此,现有技术有待于进一步的改进。
发明内容
鉴于上述现有技术中的不足之处,本发明提供了一种数据处理方法、系统及存储介质,克服现有技术中的应用层直接向所述外置存储介质读写数据时,必须以页为单位进行读写,导致其数据读写的运行时间长,处理数据的效率低的缺陷。
第一方面,本实施例公开了一种数据处理方法,其中,应用于数据处理系统,所述数据处理系统包括:应用层、驱动层以及设置在所述应用层和所述驱动层之间的读写中间层;
所述数据处理方法包括:
所述应用层响应接收到的处理操作指令,调用读写中间层接口,将待处理信息传入所述读写中间层;
所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或者写操作。
可选的,所述处理操作指令为写入操作指令,所述待处理信息为待写入数据;
所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或者写操作的步骤包括:
所述读写中间层调用外置存储介质的写接口,将所述待写入数据写入到外置存储介质。
可选的,所述读写中间层调用外置存储介质的写接口,将所述待写入数据写入到外置存储介质的步骤包括:
将所述待写入数据写入到所述外置存储介质中预划分出的数据存放区,并清除本地内存中保存的所述待写入数据。
可选的,所述处理操作指令为读取操作指令,所述待处理信息为预设缓存空间的起始地址;
所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或者写操作的步骤包括:
所述读写中间层调用外置存储介质的读接口,从所述外置存储介质中读取待读取数据,并根据所述起始地址将读取到的所述待读取数据保存至所述预设缓存空间。
可选的,所述将读取到的所述待读取数据保存至所述预设缓存空间的步骤之后,还包括:
所述读写中间层调用外置存储介质的写接口,将所述待读取数据写入所述外置存储介质中划分出的数据备份区,并将所述外置存储介质中划分出的标志位区的标志位修改为第一标志位,所述第一标志位为读取操作完成对应的标志位。
可选的,所述将所述待读取数据写入所述外置存储介质中划分出的数据备份区的步骤之后,还包括:
当复位或启动时,检测所述标志位是否为所述第一标志位;
若是,则从所述数据备份区中读取待读取数据,并将所述待读取数据写入本地内存,以及将所述第一标志位修改为第二标志位,其中,所述第二标志位为写入操作完成对应的标志位。
可选的,所述处理操作指令为修改数据指令,所述待处理信息为与所述待修改数据对应的更新数据;
所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或者写操作的步骤包括:
所述读写中间层根据传入的所述更新数据对所述待修改数据进行修改,并调用外置存储介质的写接口,将修改完成的所述待修改数据写入到外置存储介质。
可选的,所述读写中间层调用外置存储介质的写接口,将所述待写入数据写入到外置存储介质之前,还包括:
根据所述写入操作指令,启动写入所述待写入数据的第一控制进程,并为所述第一控制进程启用自旋锁,以及设置所述第一控制进程的处理顺序早于或等于任一控制进程。
可选的,所述读写中间层调用外置存储介质的读接口,从所述外置存储介质中读取待读取数据的步骤之前,所述方法还包括:
根据接收到的所述读取操作指令,启动读取所述待读取数据的第二控制进程,并为所述第二控制进程启用自旋锁,以及设置所述第二控制进程的处理顺序早于或等于任一控制进程。
第二方面,本实施例还公开了一种数据处理系统,其中,包括:应用层和读写中间层;
所述应用层响应接收到的处理操作指令,调用读写中间层接口,将待处理信息传入所述读写中间层;
所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或写操作。
第三方面,本实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述的方法的步骤。
与现有技术相比,本发明实施例具有以下优点:
根据本发明实施方式提供的数据处理方法,通过在外置存储介质和系统应用层之间设置一读写中间层,利用所述读写中间层实现对外置存储介质中数据的读写,由于应用层基于读写中间层获取外置存储介质中保存的数据,以及通过所述读写中间层将数据写入外置存储介质,因此克服了应用层直接从外置存储介质中读写数据和写入数据时必须以页为单位,读写不便的导致应用层处理数据效率低的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中一个示例性应用场景的框架示意图;
图2是本发明实施例中一种数据处理方法的步骤流程图;
图3是本发明实施例中写入数据的步骤流程图;
图4是本发明实施例中划分出的存储区域示意图;
图5是本发明实施例中读写数据的步骤流程图;
图6是本发明实施例中数据处理的原理示意图;
图7是本发明实施例中数据处理具体应用实施例的步骤流程图;
图8是本发明具体应用实施例中系统复位或启动时的数据处理的流程图;
图9是本发明实施例中数据处理运行控制的步骤流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人经过研究发现,对于现有技术中各类电子产品使用的存储介质,重要有两种,第一种为EEPROM,其读写方便,但是价格高,存储容量小,导致用户使用成本高,第二种为外置存储介质。外置存储介质是一种非易失性内存,在没有电流供应的条件下也能够长久的保存数据。目前使用的外置存储介质通常为Flash存储介质,其通过接口与电子产品壳体内的模块进行通信连接,其存储容量大,并且价格低廉,但是其读写数据只能以页为单位,因此当需要将数据读写入到Flash存储介质时,由于应用层读写数据运行时间长,导致其数据处理效率低,无法快速响应用户指令,增加了信息处理的等待时间,为用户使用电子设备带来不便。
为了解决上述问题,本发明实施例提供了一种基于读写中间层将数据读写入到外置存储介质的方法,具体的,通过在电子设备的驱动层和应用层之间设置一读写中间层,利用所述读写中间层对外置存储介质中数据的进行读写,当应用层接收到处理操作指令时,通过调用读写中间层接口,将待处理信息传入读写中间层,通过读写中间层调用外置存储介质的读接口或写接口,并根据所述待处理信息进行与所述外置存储介质之间的数据读写操作或数据写入操作。其中,所述驱动层中包含驱动程序,是嵌入式系统中不可或缺的重要部分,它的作用是为上层程序提供外部设备的操作接口,并且实现设备的驱动程序,上层程序通过调用驱动的接口实现相应的操作。所述应用层为用户应用的业务逻辑层,其用于组织调用业务逻辑,比如:定时任务、菜单任务和通信任务。所述读写中间层设置在所述驱动层与应用层之间。
例如:当应用层需要将待写入数据写入外置存储介质时,则应用层先将需要写入外置存储介质的数据保存到内存,然后调用读写中间层接口,将保持到内存中的待写入数据传入读写中间层,读写中间层通过调用外置存储介质的写接口,将保存在内存中的数据写入到外置存储介质,从而实现将数据写入外置存储介质。而上述数据写入过程,相对于应用层来说,其写入内存的数据是可以任意长度的,而将数据写入到外置存储介质的操作是由读写中间层通过调用外置存储介质的写接口实现的,因此对于应用层来说将数据写入外置存储介质等效可以任意长度进行。
结合图1所示,当用户想要实现对外置存储介质10进行数据处理时,首先在设备20的应用层202与驱动层203之间设置一用于控制对外置存储介质10中存储的数据进行读写的读写中间层201,通过所述读写中间层201实现应用层对外置存储介质中任意长度数据的读写,实现读写数据与EEPROM一样方便的效果。
所述读写中间层201,用于实现外置存储介质10中数据和写入和读取,其具有数据备份、上电恢复、读写并行临界段,系统调度后的各个控制进程之间的处理顺序等控制功能,当用户想要将数据写入到外置存储介质10时,通过发送写入操作指令至应用层202,由应用层202调用读写中间层201接口,将待写入数据传入所述读写中间层201,所述读写中间层201调用外置存储介质10的写接口,将待写入数据写入到外置存储介质10,从外置存储介质10中读取数据,或者当用户从外置存储介质10中读取数据时,则发送读取操作指令到应用层202,所述应用层调用所述读写中间层201接口,将缓存空间的起始地址传入到所述读写中间层201,由所述读写中间层201调用外置存储介质的读接口,从所述外置存储介质中读取待读取数据,并根据应用层传入的缓存空间的起始地址将待读取数据存入缓存空间。
由于应用层202借助读写中间层201实现对外置存储介质中数据的读写,可以直接从内存中获取读写中间层从外置存储介质读取到的待读取数据,或直接将待写入数据传入读写中间层,不必执行将数据按页写入外置存储介质的过程,因此对于应用层来说,其执行数据读写到外置存储介质的过程与执行数据读读写到EEPROM相同,取得了可任意长度将数据写入到外置存储介质的效果,并且减少了应用层读写数据的运行时间,提高了应用层处理数据的效率。
进一步的,所述读写中间层201预先对所述外置存储介质10中的存储区域进行了划分,所述读写中间层201模拟EEPROM进行相应的数据存储,将从所述外置存储介质10中读取的数据或要写入的数据存储在其设备内存中,从而进一步的实现应用层可以任意长度对外置存储介质10读写数据的效果。
举例说明,本发明实施例可以应用到以下场景中:在该场景中,设备20可以是通信设备、工控设备或者其他安装有嵌入式操作系统的智能设备。当用户想要从上述智能设备的外置存储介质中读取设置参数数据时,或需要将设置参数数据写入外置存储介质时,则通过发送相应的写入操作指令或读取操作指令到应用层,应用层通过调用读写中间层接口,实现由读写中间层将设置参数数据写入外置存储介质,或者从外置存储介质读取设置参数数据,以实现最近一次配置参数的保存,或最新配置参数的更新。所述读写中间层可以为集成有上述数据备份、上电恢复、读写并行临界段,系统调度后的各个控制进程之间的处理顺序等控制功能的模块,上述功能也可以通过程序代码的形式实现其上述控制功能。
需要注意的是,上述应用场景仅是为了便于理解本发明而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
下面结合附图,详细说明本发明的各种非限制性实施方式。
参见图2,示出了本发明实施例提供了一种数据处理方法,应用于数据处理系统,所述数据处理系统包括:应用层、驱动层以及设置在所述应用层和所述驱动层之间的读写中间层。
所述数据处理系统为一种嵌入式系统,其包括应用层、驱动层硬件和层,其中应用层用于提供用户程序“接口”,可在windows下进行编程接口函数调用,可实现定时任务、卡处理任务、菜单任务和通信任务。驱动层用于提供公共接口供上层调用。所述硬件层包括嵌入式处理器和外部设备。本方法在驱动层与所述应用层之间设置一读写中间层,利用读写中间层实现对外置存储介质中数据的读写。
所述方法包括以下步骤,在本实施例中,所述方法例如可以包括以下步骤:
步骤S110、所述应用层响应接收到的处理操作指令,调用读写中间层接口,将待处理信息传入所述读写中间层。
所述处理操作指令可以是用户根据需要发出的,可以是通过触摸屏触摸发出,或者通过键盘,或者通过语音发出的操作指令,也可能是智能设备上安装的一个应用程序执行某个指令的过程中自动触发的。
所述应用层响应其接收到的处理操作指令,调用读写中间层接口,待处理信息传入到读写中间层。所述读写中间层设置在应用层与驱动层之间,当应用层接收到处理操作指令,可以通过调用读写中间层接口,将待处理信息写入读写中间层。读写中间层为是一系列的程序代码,读写中间层具有数据传输控制、数据备份、上电恢复、读写并行临界段和系统调度后的优先级控制等功能。
具体的,设备接收到的处理操作指令可以是对外置存储介质进行数据写入的写入操作指令或者从外置存储介质中读取指定数据的读取操作指令。所述处理操作指令首先发送到应用层,当应用层接收到处理操作指令后,根据接收到的处理操作指令获取待处理信息,并调用读写中间层接口将待处理信息传入到读写中间层。
步骤S120、所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或者写操作。
当读写中间层接收到应用层传入的待处理信息,则调用外置存储介质的读接口或者写接口,根据所述待处理信息从所述外置存储介质中读取目标数据,或者将与所述待处理信息或与所述待处理信息相对应的数据写入到外置存储介质。
对于应用层来说,由于与外置存储介质之间的数据写操作或数据读操作均是由读写中间层来实现,应用层仅仅需要将所述待处理信息传入读写中间层,由所述读写中间层实现与外置存储介质之间的数据交互,因此等效于实现了应用层向外置存储介质写入数据或读写可以是任意长度,避免了应用层直接将待写入数据写入到外置存储介质时,需要以页为单位执行,导致占有线程时间长,耗时久的问题。
进一步的,结合图3所示,在一种实现方式中,所述处理操作指令为写入操作指令,所述待处理信息为待写入数据,则利用所述读写中间层执行将待写入数据写入外置存储介质步骤包括:
步骤S210、所述应用层响应接收到的写入操作指令,调用读写中间层接口,将待写入数据传入所述读写中间层。
当应用层接收到的是将待写入数据写入到外置存储介质中的写入操作指令时,所述应用层响应其接收到的写入操作指令,调用读写中间层接口,待写入指令传入到读写中间层。所述读写中间层设置在应用层与驱动层之间,当应用层接收到写入操作指令,可以通过调用读写中间层接口,将待写入数据写入读写中间层。
例如:所述待写入数据可以是预先存储在内存中的设备参数设置数据,当用户需要将其保存到外置存储介质时,发送到将所述设备参数设置数据写入到外置存储介质的写入操作指令,则应用层接收到所述写入操作指令时,响应所述写入操作指令,调用所述读写中间层接口,将所述设备参数设置数据写入到读写中间层。
步骤S220、所述读写中间层调用外置存储介质的写接口,将所述待写入数据写入到外置存储介质。
当读写中间层接收到应用层传入的待写入数据后,则调用外置存储介质的写接口,将所述待写入数据写入到外置存储介质。例如:当所述待写入数据为设备参数设置数据时,则将通过调用外置存储介质的写接口,将所述设备参数设置数据写入到外置存储介质。
由于应用层将其接收到的待写入数据写入到外置存储介质时,是利用读写中间层执行的将待写入数据按页写入到外置存储介质的动作由读写中间层完成,从而避免了应用层消耗大量时间在将待写入数据写入到外置存储介质,从而提高了应用层的数据处理效率。
进一步的,为了实现应用层读取外置存储介质中数据任意长度,达到读写效果与读写EEPROM中数据相同,所述读写中间层对所述外置存储介质中存储区域进行划分,结合图4所示,将外置存储介质中的存储区域划分成数据存放区K1、数据备份区K1和标志区K2。所述数据存放区用于对数据进行保存,所述数据备份区用于对数据存放区内保存的数据进行备份,所述标志区用于保存读取或者写入是否成功的标志位。
另一种实现方式中,结合图5所示,所述处理操作指令为读取操作指令,所述待处理信息为预设缓存空间的起始地址,则根据所述待处理信息进行与与外置存储介质之间的数据读操作的步骤包括:
步骤S211、所述应用层响应接收到的读取操作指令,调用所述读写中间层接口,将预设缓存空间的起始地址传入到所述读写中间层。
当应用层接收到读取操作指令,则在内存空间内建立一预设缓存空间,并获取该预设缓存空间的起始地址,并调用读写中间层接口,将所述起始地址传入到读写中间层。
所述应用层接收到的读取操作指令可以是用户发出的,也可能是应用程序在执行某个程序时根据需要调用的。
步骤S212、所述读写中间层调用外置存储介质的读接口,从所述外置存储介质中读取待读取数据,并根据所述起始地址将读取到的所述待读取数据保存至所述预设缓存空间。
当读写中间层调用外置存储介质的读接口,从外置存储介质中读取待读取数据,并根据应用层传入的起始地址将其保存至内预设缓存空间中。
举例:若当前用户想要从外置存储介质中获取最新对空调的配置参数,则用户发出读取操作指令到应用层,则应用层接收到该读取操作指令后,先在内存中预设一个用于存储最新配置参数的缓存空间,调用读写中间层的接口,将预设的用于存储最新配置参数的缓存空间的起始地址传入读写中间件。当读写中间件接收到应用层传入的缓存空间的起始地址,则从从外置存储介质中获取最新对空调的配置参数,并根据所述起始地址将所述配置参数保存到缓存空间。
具体的,所述缓存空间的大小是根据所述待读取数据的大小来设定的,应用层根据待读取数据的大小来请求至少大于待读取数据大小的缓存空间。
当应用层接收到对外置存储介质中数据的写入操作指令或读写操作指令时,则通过调用读写中间层接口、读写中间层调用外置存储介质的读写接口实现对外置存储介质中数据的读写操作,由于数据存储在外置存储介质中的数据存放区域,因此本实施例中读写中间层调用外置存储介质的读写接口从所述数据存放区域读取相应的数据,或者将相应的数据写入所述数据存放区便可以实现对外置存储介质中数据的读写操作。
在一种实施方式中,为了避免内存中保存的信息量过大,占用大量内存,当保存到内存的数据被读写中间层调用外置存储介质的写接口,写入到外置存储介质中以后,或者到保存到内存中的待读取数据被应用层读取以后,则将保存到内存中的待写入数据或已读取数据删除。
为了避免写入到设备内存中的由于断电或者其他异常状况导致的数据丢失,所述将读取的所述待读取数据写入到设备缓存空间之后,还包括:
步骤S213、将所述待读取数据写入所述外置存储介质中划分出的数据备份区。
当读写中间层将从外置存储介质中读取的待读取数据存储到设备内存后,为了避免所述待读取数据丢失,则调用所述外置存储介质的写接口,控制将所述待读取数据写入到所述数据备份区,对所述待读取数据进行备份,便于当待读取数据丢失时,从数据备份区找回,实现数据的恢复。
步骤S214、并将所述外置存储介质中划分出的标志位区的标志位修改为第一标志位,所述第一标志位为读取操作完成对应的标志位。
本步骤中通过在所述标志位区内设置标志位对读取数据操作的完成状态进行表征,从而可以根据标志位识别出读取数据操作的运行结果。第一标志位即为标明读取数据操作完成的标志位。
当数据备份成功,则将标志位区中保存的标志位修改为第一标志位,当从标志位区内读取的标志位为第一标志位时,则表明当存储到设备内存的待读取数据已经成功备份到数据备份区,所述读写中间层成功读取到的待读取数据。
进一步的,所述在所述外置存储介质中预设的标志位区的标志位修改为第二标志位的步骤之后,还包括:
当复位或启动时,检测所述标志位是否为所述第一标志位;
若是,则从所述数据备份区中读取待读取数据,并将所述待读取数据写入内存,以及将所述第一标志位修改为第二标志位,其中,所述第二标志位为写入操作完成对应的标志位。
当系统发送复位或者重新启动时,对所述标志位区内保存的标志位是否为第一标志位进行检测,若是第一标志位,则说明当前保存到数据备份区内的待读取数据未被重新写入到设备内存中,若发生系统复位或断电后重新启动,原保存到设备内存中的待读取数据已经丢失,则从所述数据备份区内获取所述待读取数据,并将所述待读取数据写入设备内存,对设备内存中丢失的待读取数据进行恢复。
在一个实施例的实现方式中,所述第一标志位为1,也即是在标志位区写0x01。第二标志位为0,也即在标志位区内写入的数据为在一个实施例的实现方式中,所述第一标志位为1,也即是在标志位区写0x00。
由于所述读写中间层断电后,设备内存中保存的数据信息会丢失,因此到检测到读写中间层复位或者启动时,则检测标志位区内保存的标志位为0还是1,若为1,则说明在读写中间层复位或启动之前,保存在设备内存中的信息丢失,且未被再次写入到设备内存中,因此控制将数据备份区内保存的数据写入设备内存中,并控制将标志位从1清空为0,实现数据的恢复。
在具体实施时,当需要对外置存储介质中数据的修改时,也若所述处理操作指令为修改数据指令,所述待处理信息为与所述待修改数据对应的更新数据,则利用读写中间层实现对外置存储介质中数据修改的步骤包括:
步骤S310、所述应用层响应接收到的修改数据操作指令,调用所述读写中间层接口将与待修改数据对应的更新数据传入所述读写中间层.
当应用层接收到修改数据操作指令,则获取所述修改数据操作指令对应的更新数据,并调用所述读写中间层接口将所述更新数据传入所述读写中间层。
步骤S320、所述读写中间层根据传入的所述更新数据对所述待修改数据进行修改,并调用外置存储介质的写接口,将修改完成的所述待修改数据写入到外置存储介质。
读写中间层接收应用层传入的更新数据,在设备内存中根据更新数据对待修改数据进行修改,并调用外置存储介质的写接口,将修改后的待修改数据写入到外置存储介质的数据存放区中,实现外置存储介质中保存数据的修改。
为了避免数据读取和写入数据的控制进程不被打断,并且保证读写操作不并行,所述应用层响应接收到的写入操作指令,调用读写中间层接口的步骤之后,还包括:
根据所述写入操作指令,启动写入所述待写入数据的第一控制进程,并为所述第一控制进程启用自旋锁,以及设置所述第一控制进程的处理顺序早于或等于任一控制进程。
结合图9所示,当应用层接收到写入操作指令,则调用读写中间层接口,并检测将待写入数据写入到外置存储介质的第一控制进程是否已经启动,若启动,则判断第一控制进程是已经获得自旋锁,若已经获取,则发送待写入数据至读写中间层,所述读写中间层调用外置存储介质的写接口将待写入数据写入到外置存储介质。若第一控制进程未获取到自旋锁,则等待第一控制进程获取到自旋锁后,发送待写入数据至读写中间层,从而避免写入所述待写入数据的控制进行发生读取中断关闭的情况发生。当所述第一控制进程运行结束,也即当待写入数据写入到外置存储介质后,自动第一控制进行的自旋锁自动解锁。
以及,所述应用层响应接收到的读取操作指令,调用所述读写中间层接口的步骤之后,所述方法还包括:
根据接收到的所述读取操作指令,启动读取所述待读取数据的第二控制进程,并为所述第二控制进程启用自旋锁,以及设置所述第二控制进程的处理顺序早于或等于任一控制进程。
同样的,根据接收到的所述读取操作指令,为读取操作的第二控制进程也启动自旋锁,仅仅当检测到第二控制进程已经获取到自旋锁,读写中间层调用外置存储介质的读接口获取待读取数据,并根据应用层传入的缓存空间的起始地址将待读取数据存储到缓存空间内。
为控制所述读取和写入操作对应的控制进程设置优先处理的处理顺序,其处理顺序早于或等于其他控制进程,从而避免了其他控制进程对其运行时的干扰,实现了读写操作的顺利进行。
下面以本发明方法的具体应用实施例,以FreeRTOS系统为例,对本发明方法做更为详细的说明;
如图6所示,嵌入式设备中依次安装有SpiFlash芯片、SpiFlash驱动、应用层,在在所述应用层和所述SpiFlash驱动之间设置一读写中间层,所述读写中间层可以通过外置的SpiFlash存储介质接口实现对外置所述SpiFlash芯片中存储的数据进行读写操作。根据所要读取数据大小为外置Spiflash存储设备划分存储区域,划分出的存储区域包括:数据存放区、数据备份区和标志位区。
结合图7所示,当需要将数据写入到外置SpiFlash存储介质时,从数据存放区中读出目标数据到设备内存的全局数组中,调用外置SpiFlash存储介质的写接口把全局数组写入数据备份区实现数据备份,在数据备份后,将标志位区内的标志位置为1。若应用层接收到修改数据操作指令,则根据应用层接收到的更新数据对设备内存中的待修改数据进行修改,并将修改后的数据保存到全局数组,再将全局数组写入外置SpiFlash存储介质的数据存放区。如果写入全局数组成功则清零标志位区的标志位,否则下次上电或复位后会检查到该标志位没有被清零,从备份区读取到修改后的待修改数据写入数据存放区,实现数据恢复。
结合图8所示,对系统复位后,或重新启动后,数据处理的步骤进行说明。当系统复位或重新上电,调用外置SpiFlash存储介质的读接口,将标志位区中的第一个字节读出,如果为0则无需执行任何操作;如果为1,则执行C步骤调用外置SpiFlash存储介质的读接口,将数据备份区中的数据全部读出到全局数组中,并调用外置SpiFlash存储介质的写接口,将全局数组中的内容全部写入数据存放区(也即e_data_space)中调用Flash存储介质的写接口,将标志位区(也即e_flag_space)中的第一个字节置为0,写入数据的操作结束。
当设备的操作系统开始进行数据读写操作时,为了避免读写过程中各个控制进程并行,或者避免读写操作的控制进程别其他控制进程所干扰,结合图9所示,为读写操作的控制进程设置自旋锁,当检测到将读写到外置存储介质的控制进程启动时,判断其是否获得自旋锁,若没有将该控制进程分配到等待队列中,直到该控制进行获取到自旋锁,当控制进程获取到自旋锁后,发送消息到读写中间层,读写中间层进行相应的读写操作,从而保证了外置存储介质的读写过程不被中断且读写操作不并行。
进一步的,以FreeRTOS为例,创建优先级最高的任务进行读写中间层的数据读写操作进程进行控制,保证读写操作进程不被其它任务中断。
第二方面,本发明实施例还提供了一种数据处理系统,包括:读写中间层和应用层;
所述应用层响应接收到的处理操作指令,调用读写中间层接口,将待处理信息传入所述读写中间层;
所述读写中间层调用外置存储介质的读接口或写接口,根据所述待处理信息进行与所述外置存储介质之间的数据读操作或写操作。
在一种实现方式中,所述处理操作指令为写入操作指令,所述待处理信息为待写入数据;
所述读写中间层,用于调用外置存储介质的写接口,将所述待写入数据写入到外置存储介质。
在一种实现方式中,所述处理操作指令为读取操作指令,所述待处理信息为预设缓存空间的起始地址;
所述读写中间层,用于调用外置存储介质的读接口,从所述外置存储介质中读取待读取数据,并根据所述起始地址将读取到的所述待读取数据保存至所述预设缓存空间。
在一种实现方式中,所述处理操作指令为修改数据指令,所述待处理信息为与所述待修改数据对应的更新数据;
所述读写中间层根据传入的所述更新数据对所述待修改数据进行修改,并调用外置存储介质的写接口,将修改完成的所述待修改数据写入到外置存储介质。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其中,所述处理器执行所述计算机程序时实现所述方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述的方法的步骤。
在示例性实施例中,计算机设备可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
- 一种用于优惠券管理系统的数据处理方法、系统及存储介质
- 一种票务系统数据处理方法、票务系统、终端及存储介质