CN113490112B - 一种无线耳机及无线耳机的数据处理方法、存储介质 - Google Patents
一种无线耳机及无线耳机的数据处理方法、存储介质 Download PDFInfo
- Publication number
- CN113490112B CN113490112B CN202110753123.2A CN202110753123A CN113490112B CN 113490112 B CN113490112 B CN 113490112B CN 202110753123 A CN202110753123 A CN 202110753123A CN 113490112 B CN113490112 B CN 113490112B
- Authority
- CN
- China
- Prior art keywords
- data
- space
- storage area
- type
- memory
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R3/00—Circuits for transducers, loudspeakers or microphones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R1/00—Details of transducers, loudspeakers or microphones
- H04R1/10—Earpieces; Attachments therefor ; Earphones; Monophonic headphones
- H04R1/1091—Details not provided for in groups H04R1/1008 - H04R1/1083
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种无线耳机的数据处理方法,在无线耳机的内存中分配有自定义分区,自定义分区包括第一自定义空间和/或第二自定义空间,自定义分区与应用程序占用空间相邻,靠近内存的高地址空间;在无线耳机关机前,将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区;在无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间;第二自定义空间用于存放第二类数据,即关机不保存但复位不丢失的数据。应用本申请所提供的技术方案,可以避免重启后或者关机再开机后内存中自定义分区的待用数据丢失,保障无线耳机的正常运行。本申请还公开了一种无线耳机和一种计算机可读存储介质,具有相应技术效果。
Description
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种无线耳机及无线耳机的数据处理方法、存储介质。
背景技术
随着科学技术的进步,无线耳机逐渐兴起,产品种类越来越丰富,如TWS(TrueWireless Stereo,真无线)产品等。在无线耳机工作过程中,无线耳机的内存中会有相应数据保存,当无线耳机重启,或者关机再开机时,内存中的数据会被清零。但是因为其中有些数据具有重要作用,如果丢失将会影响无线耳机的正常运行。所以,如何对无线耳机的数据进行处理,避免重启或关机再开机后内存中待用数据丢失,成为本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种无线耳机及无线耳机的数据处理方法、存储介质,以避免重启或关机再开机后内存中待用数据丢失,保障无线耳机的正常运行。
为解决上述技术问题,本申请提供如下技术方案:
一种无线耳机的数据处理方法,在无线耳机的内存中分配有第一自定义空间,所述第一自定义空间与应用程序占用空间相邻,靠近所述内存的高地址空间,用于存放第一类数据,所述第一类数据为关机保存且开机恢复的数据;所述无线耳机的数据处理方法包括:
在所述无线耳机关机前,将所述第一自定义空间中的所述第一类数据按顺序保存到闪存的非初始存储区;
在所述无线耳机开机后,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间。
在本申请的一种具体实施方式中,还包括:
在所述无线耳机关机前,将所述闪存的代码段中的变量索引信息保存到所述闪存的索引存储区;
相应的,所述将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间,包括:
根据所述索引存储区保存的变量索引信息,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间。
在本申请的一种具体实施方式中,所述根据所述索引存储区保存的变量索引信息,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间,包括:
针对所述闪存的代码段中每个变量数据块,读取当前变量数据块的名称字段;
在所述索引存储区中查找与所述当前变量数据块的名称字段一致的索引数据块;
根据所述索引数据块包括的地址信息,确定所述非初始存储区中对应的目标数据块;
基于所述内存的代码段中所述当前变量数据块包括的地址信息和长度信息,将所述目标数据块复制到所述第一自定义空间中。
在本申请的一种具体实施方式中,所述根据所述索引数据块包括的地址信息,确定所述非初始存储区中对应的目标数据块,包括:
根据所述索引数据块包括的地址信息和所述第一自定义空间的起始地址,确定源地址偏移量;
基于所述源地址偏移量和所述非初始存储区的起始地址,确定所述索引数据块对应的所述非初始存储区中的目标数据块。
在本申请的一种具体实施方式中,所述第一类数据包括开机相关信息和关机相关信息。
一种无线耳机的数据处理方法,在无线耳机的内存中分配有第二自定义空间,所述第二自定义空间与程序占用空间相邻,靠近所述内存的高地址空间,用于存放第二类数据,所述第二类数据为关机不保存但复位不丢失的数据。
在本申请的一种具体实施方式中,所述第二类数据包括系统时间戳、重启原因、电量计参数、日志头信息中的至少一种。
一种无线耳机的数据处理方法,在无线耳机的内存中分配有自定义分区,所述自定义分区包括第一自定义空间和第二自定义空间,所述自定义分区与程序占用空间相邻,靠近所述内存的高地址空间,所述第一自定义空间用于存放第一类数据,所述第一类数据为关机保存且开机恢复的数据,所述第二自定义空间用于存放第二类数据,所述第二类数据为关机不保存但复位不丢失的数据;所述无线耳机的数据处理方法包括:
在所述无线耳机关机前,将所述第一自定义空间中的所述第一类数据按顺序保存到闪存的非初始存储区;
在所述无线耳机开机后,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间。
一种无线耳机,包括耳机本体及在所述耳机本体中设置的存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序时实现上述任一项所述的无线耳机的数据处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的无线耳机的数据处理方法的步骤。
应用本申请实施例所提供的技术方案,在无线耳机的内存中分配有自定义分区,自定义分区包括第一自定义空间和/或第二自定义空间,自定义分区与应用程序占用空间相邻,靠近内存的高地址空间,在无线耳机关机前,将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区,在无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间,第二自定义空间用于存放第二类数据,即关机不保存但复位不丢失的数据。可以使得重启后自定义分区的数据维持重启前状态,开机后第一自定义空间的数据也可以维持关机前状态,避免重启后或者关机再开机后内存中自定义分区的待用数据丢失,保障无线耳机的正常运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中无线耳机的内存分区示意图;
图2为本申请实施例中一种无线耳机的数据处理方法的实施流程图;
图3为本申请实施例中应用程序升级后变量地址变动示意图;
图4为本申请实施例中无线耳机重启前数据保存过程示意图;
图5为本申请实施例中无线耳机重启后数据恢复过程示意图;
图6为本申请实施例中一种无线耳机的内部组成结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心是提供一种无线耳机的数据处理方法,在无线耳机的内存中分配有第一自定义空间,第一自定义空间与应用程序占用空间相邻,靠近内存的高地址空间,用于存放第一类数据,第一类数据为关机保存且开机恢复的数据。
无线耳机的内存具体可以为RAM(Random Access Memory,随机存取存储器)。
在实际应用中,程序被编译成目标文件后主要包含如下几段:代码段(textsection)、数据段(data section)、BSS段(bss section)。其中,BSS段属于静态内存分配,用来存放程序中未初始化的全局变量和未初始化的局部静态变量,通常默认值是0。数据段也属于静态内存分配,通常用来存放程序中已经初始化的全局变量和已经初始化的静态变量。
在执行应用程序的主函数,即main函数前,系统首先执行堆栈初始化以及C库初始化动作,数据段的赋值以及BSS段的清零,均为在执行main函数之前由系统完成。
链接器在执行链接的时候默认会把应用程序中未初始化或者初始化为0的变量放在BSS段,当无线耳机重启时,BSS段的数据会被清零。本申请实施例中,在无线耳机的内存中分配的第一自定义空间,与应用程序占用空间相邻,靠近内存的高地址空间,在第一自定义空间中存放第一类数据,第一类数据为关机保存且开机恢复的数据。这样,第一类数据不会存放到BSS段,而是存放到第一自定义空间,且因为第一自定义空间与应用程序占用空间相邻,靠近内存的高地址空间,可以避免异常发生时,或者引导加载程序(Bootloader)运行时篡改或者清零第一自定义空间的数据,以使得第一自定义空间不执行清零动作,可以在无线耳机重启时使得第一自定义空间中的数据维持重启前的状态。
如图1所示,在无线耳机的RAM中,最高地址空间被分配为MSP(MainStackpointer,主堆栈指针)空间,MSP空间为缺省的系统MSP指向位置,中断发生时,使用该空间作为函数返回的栈空间,RAM的最低地址空间被分配为引导加载程序(Bootloader)和应用程序共用空间,Bootloader运行结束后该空间交由应用程序使用,与引导加载程序和应用程序共用空间相邻的为应用程序占用空间,与应用程序占用空间相邻,靠近内存的高地址空间的空间100的位置可以分配为第一自定义空间。
第一类数据可以包括开机相关信息和关机相关信息,如开机标志信息和关机标志信息,当然,还可以根据实际情况,设定第一类数据包括其他更多的信息。
参见图2所示,该无线耳机的数据处理方法可以包括以下步骤:
S210:在无线耳机关机前,将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区;
S220::在无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间。
为便于描述,将上述两个步骤结合起来进行说明。
在本申请实施例中,在无线耳机关机前,可以将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区。当接收到对无线耳机的关机指令时,在无线耳机关机前,可以执行该步骤的操作,以将内存中第一自定义空间的第一类数据保存到闪存。
在无线耳机开机后,可以将非初始存储区保存的第一类数据恢复到第一自定义空间。实现开机后第一自定义空间的数据与关机前保持一致的状态,保障无线耳机的正常运行。
应用本申请实施例所提供的方法,第一类数据为关机保存且开机恢复的数据,将第一类数据存放在内存的第一自定义空间,而不是BSS段,且第一自定义空间与应用程序占用空间相邻,靠近内存的高地址空间,可以使得重启后第一自定义空间的数据与重启前的状态保持一致,在无线耳机关机前,将第一自定义空间中的第一类数据保存到闪存的非初始存储区,无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间,使得开机后第一自定义空间的数据维持关机前的状态,避免关机再开机后内存中第一自定义空间的待用数据丢失,可以保障无线耳机的正常运行。
在无线耳机使用过程中,可能会涉及到应用程序的更新与优化,新的应用程序中新变量的定义对于第一自定义空间中数据的布局可能存在一定影响,在应用程序升级时,可能会面临与升级前变量地址不一致的问题,这种变动对整个内存影响较大,严重情况下会引起第一自定义区间变量地址错位,导致数据异常。
如图3所示,在应用程序发生变化之前,RAM中第一自定义空间的第一类数据的每个数据块按顺序保存在闪存中,即RAM中第一自定义空间的第一类数据的数据块顺序与闪存中保存的数据块顺序一一对应,如RAM中的Variable_0对应闪存中的Variable_0,RAM中的Variable_1对应闪存中的Variable_1。如果应用程序没有变化,则在无线耳机关机再开机时,可以将闪存中保存的数据块按顺序恢复到RAM中,恢复后的数据与关机前的数据状态保持一致。
但是,当应用程序发生变化后,闪存中代码段包括的变量的定义可能发生变动,如果按顺序将闪存中保存的数据块恢复到RAM中,即将闪存中的Variable_0恢复到RAM中第一个位置,将闪存中的Variable_1恢复到RAM中的第二个位置,将会使得恢复后RAM中第一自定义空间的第一类数据的数据块错乱,导致数据异常。实际上,在应用程序发生变化后,进行恢复时,最后的恢复结果应该是,闪存中的Variable_1恢复到RAM中的第一个位置,闪存中的Variable_0恢复到RAM中的第二个位置,这样才能保证数据正常使用。
基于此,在本申请的一个实施例中,该方法还可以包括以下步骤:
在无线耳机关机前,将闪存的代码段中的变量索引信息保存到闪存的索引存储区;
相应的,将非初始存储区保存的第一类数据恢复到第一自定义空间,包括:
根据索引存储区保存的变量索引信息,将非初始存储区保存的第一类数据恢复到第一自定义空间。
在本申请实施例中,在无线耳机重启前,将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区,同时,可以将闪存的代码段中的变量索引信息保存到闪存的索引存储区,闪存的代码段所在区域与索引存储区不同。将闪存的代码段中的变量索引信息保存到闪存的索引存储区后,即在闪存中保存了重启前的变量索引信息。
如图4所示,RAM中第一自定义空间的地址范围为no_init_with_save_start(第一自定义空间的起始地址)—no_init_with_save_end(第一自定义空间的结束地址)。在无线耳机关机前,第一自定义空间中的第一类数据包括数据块ExampleStruct_t variable_1和ExampleStruct_t variable_2。闪存的代码段为尖括号所在范围,代码段中的变量索引信息位于只读数据段RODATA,地址范围为index_map_with_save_start(代码段中索引信息的起始地址)—index_map_with_save_end(代码段中索引信息的结束地址),包括变量数据块Varvariable_1和Varvariable_2,即:
Varvariable_1
{name=”variable_1”;
Address=addr_1;
Length=len_1;};
Varvariable_2
{name=”variable_2”;
Address=addr_2;
Length=len_2;};
在无线耳机关机前,将内存的第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区,曲线1所示,在闪存的非初始存储区保存的数据块为:ExampleStruct_tvariable_1和ExampleStruct_t variable_2。同时,将闪存的代码段中的变量索引信息保存到闪存的索引存储区,如曲线2所示,在闪存的索引存储区保存的变量索引信息包括数据块Varvariable_1和Varvariable_2。
进行上述保存操作后,可以对无线耳机执行关机动作,在无线耳机开机后,可以根据索引存储区保存的变量索引信息进行反查,将非初始存储区保存的第一类数据恢复到第一自定义空间。
在本申请的一种具体实施方式中,根据索引存储区保存的变量索引信息,将非初始存储区保存的第一类数据恢复到第一自定义空间,可以包括以下步骤:
第一个步骤:针对闪存的代码段中每个变量数据块,读取当前变量数据块的名称字段;
第二个步骤:在索引存储区中查找与当前变量数据块的名称字段一致的索引数据块;
第三个步骤:根据索引数据块包括的地址信息,确定非初始存储区中对应的目标数据块;
第四个步骤:基于内存的代码段中当前变量数据块包括的地址信息和长度信息,将目标数据块复制到第一自定义空间中。
为便于描述,将上述四个步骤结合起来进行说明。
在本申请实施例中,闪存的代码段中的变量索引信息可以包括多个变量数据块,针对闪存的代码段中每个变量数据块,都可以按照以下步骤进行操作,以进行内存中第一自定义空间的数据的恢复。
针对闪存的代码段中每个变量数据块,可以读取当前变量数据块的名称字段。当前变量数据块是指当前操作所针对的变量数据块。
索引存储区中保存有关机前闪存的代码段中的变量索引信息,在索引存储区保存的变量索引信息所包括的数据块可以称为索引数据块。在读取到当前变量数据块的名称字段后,可以在索引存储区中查找与当前变量数据块的名称字段一致的索引数据块。在关机前,将闪存的代码段中的变量索引信息保存到闪存的索引存储区,索引存储区中保存的变量索引信息包括的索引数据块包括各自的地址信息。索引存储区的变量索引信息和非初始存储区的第一类数据都是关机前保存的,彼此相对应。根据索引数据块包括的地址信息,可以确定非初始存储区中对应的目标数据块。
具体的,可以根据索引数据块包括的地址信息和第一自定义空间的起始地址,确定源地址偏移量,再基于源地址偏移量和非初始存储区的起始地址,确定索引数据块对应的非初始存储区中的目标数据块。即将索引数据块包括的地址减去第一自定义空间的起始地址,可以得到一个源地址偏移量,该源地址偏移量为关机前索引数据块对应的第一自定义空间中的源数据块的偏移地址,将源地址偏移量减去非初始存储区的起始地址后,可以在非初始存储区中查找得到相应地址对应的数据块,该数据块即为索引数据块对应的非初始存储区中的目标数据块。
在内存的代码段中当前变量数据块除了具有名称字段,还具有地址字段、长度字段,通过读取代码段中当前变量数据块的地址字段和长度字段,可以获得当前变量数据块包括的地址信息和长度信息,基于当前变量数据块包括的地址信息和长度信息,可以将在非初始存储区中确定出的目标数据块复制到第一自定义空间中。
如图5所示,无线耳机开机后,闪存的代码段中的变量索引信息包括变量数据块Varvariable_1和Varvariable_2,较关机前有变动,具体如下:
Varvariable_2
{name=”variable_2”;
Address=addr_2;
Length=len_1;};
Varvariable_1
{name=”variable_1”;
Address=addr_1;
Length=len_1;}。
在闪存的代码段中读取变量数据块Varvariable_1的名称字段,其名称字段为variable_1,在闪存的索引存储区中查找名称字段与variable_1一致的索引数据块,如曲线1,具体为:
Varvariable_1
{name=”variable_1”;
Address=addr_1;
Length=len_1;}。
该索引数据块包括的地址信息为addr_1,根据该地址信息和第一自定义空间的起始地址,确定源地址偏移量为addr_1-no_init_save_with_start,基于该源地址偏移量和非初始存储区的起始地址(no_init_save_start),确定索引数据块对应的非初始存储区中的目标数据块为ExampleStruct_t variable_1,如曲线2,内存的代码段中变量数据块Varvariable_1包括的地址信息为addr_1,包括的长度信息为len_1,基于该地址信息和长度信息,将闪存中非初始存储区的目标数据块ExampleStruct_t variable_1复制到RAM的第一自定义空间中,如曲线3。
通过在关机前将内存的第一自定义空间的第一类数据按顺序保存到闪存的非初始存储区,将闪存的代码段中的变量索引信息保存到闪存的索引存储区,无论闪存的代码段中的变量索引信息是否有变动,在开机后基于索引存储区保存的变量索引信息,都可以准确地将闪存的非初始存储区保存的第一类数据恢复到第一自定义空间,使得开机后第一自定义空间的数据与关机前状态保持一致,保障无线耳机的正常运行。
本申请还提供一种无线耳机的数据处理方法,在无线耳机的内存中分配有第二自定义空间,第二自定义空间与程序占用空间相邻,靠近内存的高地址空间,用于存放第二类数据,第二类数据为关机不保存但复位不丢失的数据。第二类数据不会存放到BSS段,而是存放到第二自定义空间,且因为第二自定义空间与应用程序占用空间相邻,靠近内存的高地址空间,可以避免异常发生时,或者引导加载程序(Bootloader)运行时篡改或者清零第二自定义空间的数据,以使得第二自定义空间不执行清零动作,可以在无线耳机重启时使得第二自定义空间中的数据维持重启前的状态。
如图1所示,在无线耳机的RAM中,最高地址空间被分配为MSP(Main Stackpointer,主堆栈指针)空间,MSP空间为缺省的系统MSP指向位置,中断发生时,使用该空间作为函数返回的栈空间,RAM的最低地址空间被分配为引导加载程序(Bootloader)和应用程序共用空间,与引导加载程序和应用程序共用空间相邻的为应用程序占用空间,与应用程序占用空间相邻,靠近内存的高地址空间的空间100的位置可以分配为第二自定义空间。
第二类数据可以包括系统时间戳、重启原因、电量计参数、日志头信息中的至少一种。当然,也可以根据实际情况设定其包括其他更多信息。
应用本申请实施例所提供的方法,第二类数据为关机不保存但复位不丢失的数据,将第二类数据存放在内存的第二自定义空间,而不是BSS段,且第二自定义空间与应用程序占用空间相邻,靠近内存的高地址空间,无线耳机重启时第二自定义空间不执行清零动作,可以使得重启后第二自定义空间的数据维持重启前的状态,避免重启后内存中第二自定义空间的待用数据丢失,保障无线耳机的正常运行。
本申请还提供一种无线耳机的数据处理方法,在无线耳机的内存中分配有自定义分区,自定义分区包括第一自定义空间和第二自定义空间,自定义分区与程序占用空间相邻,靠近内存的高地址空间,第一自定义空间用于存放第一类数据,第一类数据为关机保存且开机恢复的数据,第二自定义空间用于存放第二类数据,第二类数据为关机不保存但复位不丢失的数据。在自定义分区中,第一自定义空间的地址范围可以高于第二自定义空间的地址范围,也可以低于第二自定义空间的地址范围。
在第一自定义空间中存放第一类数据,在第二自定义空间中存放第二类数据,因为包括第一自定义空间和第二自定义空间的自定义分区与应用程序占用空间相邻,靠近内存的高地址空间,可以避免异常发生时,或者引导加载程序(Bootloader)运行时篡改或者清零自定义分区的数据,以使得自定义分区不执行清零动作,可以在无线耳机重启时使得自定义分区中的数据维持重启前的状态。
如图1所示,在无线耳机的RAM中,最高地址空间被分配为MSP(Main Stackpointer,主堆栈指针)空间,MSP空间为缺省的系统MSP指向位置,中断发生时,使用该空间作为函数返回的栈空间,RAM的最低地址空间被分配为引导加载程序(Bootloader)和应用程序共用空间,与引导加载程序和应用程序共用空间相邻的为应用程序占用空间,与应用程序占用空间相邻,靠近内存的高地址空间的空间100的位置可以分配为自定义分区。
该无线耳机的数据处理方法可以包括以下步骤:
步骤一:在无线耳机关机前,将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区;
步骤二:在无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间。
为便于描述,将上述两个步骤结合起来进行说明。
在无线耳机关机前,可以将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区。当接收到对无线耳机的关机指令时,在无线耳机关机前,可以执行该步骤的操作,以将内存中第一自定义空间的第一类数据保存到闪存。
在无线耳机开机后,可以将非初始存储区保存的第一类数据恢复到第一自定义空间。实现开机后第一自定义空间的数据与关机前保持一致的状态,保障无线耳机的正常运行。
应用本申请实施例所提供的方法,将第一类数据和第二类数据存放在内存的自定义分区,而不是BSS段,且自定义分区与应用程序占用空间相邻,靠近内存的高地址空间,无线耳机重启时自定义分区不执行清零动作,可以使得重启后自定义分区的数据维持重启前的状态,避免重启后内存中待用数据丢失,而且,对于第一类数据,在无线耳机关机前,将其保存到闪存的非初始存储区,无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间,使得开机后第一自定义空间的数据维持关机前的状态,可以避免关机再开机后内存中自定义分区的待用数据丢失,保障无线耳机的正常运行。
在本申请的一个实施例中,还包括:
在无线耳机关机前,将闪存的代码段中的变量索引信息保存到闪存的索引存储区;
相应的,将非初始存储区保存的第一类数据恢复到第一自定义空间,包括:
根据索引存储区保存的变量索引信息,将非初始存储区保存的第一类数据恢复到第一自定义空间。
在本申请的一种具体实施方式中,根据索引存储区保存的变量索引信息,将非初始存储区保存的第一类数据恢复到第一自定义空间,包括:
针对闪存的代码段中每个变量数据块,读取当前变量数据块的名称字段;
在索引存储区中查找与当前变量数据块的名称字段一致的索引数据块;
根据索引数据块包括的地址信息,确定非初始存储区中对应的目标数据块;
基于内存的代码段中当前变量数据块包括的地址信息和长度信息,将目标数据块复制到第一自定义空间中。
在本申请的一种具体实施方式中,根据索引数据块包括的地址信息,确定非初始存储区中对应的目标数据块,包括:
根据索引数据块包括的地址信息和第一自定义空间的起始地址,确定源地址偏移量;
基于源地址偏移量和非初始存储区的起始地址,确定索引数据块对应的非初始存储区中的目标数据块。
在本申请的一种具体实施方式中,第一类数据包括开机相关信息和关机相关信息。
在本申请的一个实施例中,第一类数据包括开机相关信息和关机相关信息,第二类数据包括系统时间戳、重启原因、电量计参数、日志头信息中的至少一种。
具体实施过程可以参考上述相关实施例的实施过程,不再赘述。
需要说明的是,在实际应用中,开发人员可以根据实际使用场景,确定将哪些数据存放在自定义分区,以实现重启后数据不丢失的目的,增强无线耳机开发使用的灵活性。
相应于上面的方法实施例,本申请实施例还提供了一种无线耳机,包括耳机本体及在耳机本体中设置的存储器和处理器;
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述无线耳机的数据处理方法的步骤。
如图6所示,为无线耳机的内部组成结构示意图,无线耳机可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行无线耳机的数据处理方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
在无线耳机关机前,将第一自定义空间中的第一类数据按顺序保存到闪存的非初始存储区;
在无线耳机开机后,将非初始存储区保存的第一类数据恢复到第一自定义空间。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如数据处理功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如保存的数据、恢复的数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图6所示的结构并不构成对本申请实施例中无线耳机的限定,在实际应用中无线耳机可以包括比图6所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述无线耳机的数据处理方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种无线耳机的数据处理方法,其特征在于,在无线耳机的内存中分配有第一自定义空间,所述第一自定义空间与应用程序占用空间相邻,靠近所述内存的高地址空间,用于存放第一类数据,所述第一类数据为关机保存且开机恢复的数据;所述无线耳机的数据处理方法包括:
在所述无线耳机关机前,将所述第一自定义空间中的所述第一类数据按顺序保存到闪存的非初始存储区;
在所述无线耳机开机后,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间。
2.根据权利要求1所述的无线耳机的数据处理方法,其特征在于,还包括:
在所述无线耳机关机前,将所述闪存的代码段中的变量索引信息保存到所述闪存的索引存储区;
相应的,所述将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间,包括:
根据所述索引存储区保存的变量索引信息,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间。
3.根据权利要求2所述的无线耳机的数据处理方法,其特征在于,所述根据所述索引存储区保存的变量索引信息,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间,包括:
针对所述闪存的代码段中每个变量数据块,读取当前变量数据块的名称字段;
在所述索引存储区中查找与所述当前变量数据块的名称字段一致的索引数据块;
根据所述索引数据块包括的地址信息,确定所述非初始存储区中对应的目标数据块;
基于所述内存的代码段中所述当前变量数据块包括的地址信息和长度信息,将所述目标数据块复制到所述第一自定义空间中。
4.根据权利要求3所述的无线耳机的数据处理方法,其特征在于,所述根据所述索引数据块包括的地址信息,确定所述非初始存储区中对应的目标数据块,包括:
根据所述索引数据块包括的地址信息和所述第一自定义空间的起始地址,确定源地址偏移量;
基于所述源地址偏移量和所述非初始存储区的起始地址,确定所述索引数据块对应的所述非初始存储区中的目标数据块。
5.根据权利要求1至4之中任一项所述的无线耳机的数据处理方法,其特征在于,所述第一类数据包括开机相关信息和关机相关信息。
6.根据权利要求2至4之中任一项所述的无线耳机的数据处理方法,其特征在于,在所述无线耳机的所述内存中分配有第二自定义空间,所述第二自定义空间与程序占用空间相邻,靠近所述内存的高地址空间,用于存放第二类数据,所述第二类数据为关机不保存但复位不丢失的数据。
7.根据权利要求6所述的无线耳机的数据处理方法,其特征在于,所述第二类数据包括系统时间戳、重启原因、电量计参数、日志头信息中的至少一种。
8.一种无线耳机的数据处理方法,其特征在于,在无线耳机的内存中分配有自定义分区,所述自定义分区包括第一自定义空间和第二自定义空间,所述自定义分区与程序占用空间相邻,靠近所述内存的高地址空间,所述第一自定义空间用于存放第一类数据,所述第一类数据为关机保存且开机恢复的数据,所述第二自定义空间用于存放第二类数据,所述第二类数据为关机不保存但复位不丢失的数据;所述无线耳机的数据处理方法包括:
在所述无线耳机关机前,将所述第一自定义空间中的所述第一类数据按顺序保存到闪存的非初始存储区;
在所述无线耳机开机后,将所述非初始存储区保存的所述第一类数据恢复到所述第一自定义空间。
9.一种无线耳机,其特征在于,包括耳机本体及在所述耳机本体中设置的存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的无线耳机的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的无线耳机的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110753123.2A CN113490112B (zh) | 2021-07-02 | 2021-07-02 | 一种无线耳机及无线耳机的数据处理方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110753123.2A CN113490112B (zh) | 2021-07-02 | 2021-07-02 | 一种无线耳机及无线耳机的数据处理方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113490112A CN113490112A (zh) | 2021-10-08 |
CN113490112B true CN113490112B (zh) | 2022-11-25 |
Family
ID=77939694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110753123.2A Active CN113490112B (zh) | 2021-07-02 | 2021-07-02 | 一种无线耳机及无线耳机的数据处理方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113490112B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785248B (zh) * | 2024-02-28 | 2024-05-24 | 上海励驰半导体有限公司 | 程序升级中关键变量的注册方法、装置、存储介质及芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2751360Y (zh) * | 2004-09-08 | 2006-01-11 | 北京融通高科科技发展有限公司 | 一种cpu卡表 |
CN110096451A (zh) * | 2018-01-29 | 2019-08-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN112035378A (zh) * | 2020-09-03 | 2020-12-04 | 北京百瑞互联技术有限公司 | 一种数据快速写入flash闪存的方法及系统 |
CN112199042A (zh) * | 2020-09-30 | 2021-01-08 | 深圳市汇顶科技股份有限公司 | 存储空间管理方法、装置、芯片、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268667B2 (en) * | 2012-12-19 | 2016-02-23 | Dell Products, Lp | System and method to create a non-volatile bootable RAM disk |
-
2021
- 2021-07-02 CN CN202110753123.2A patent/CN113490112B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2751360Y (zh) * | 2004-09-08 | 2006-01-11 | 北京融通高科科技发展有限公司 | 一种cpu卡表 |
CN110096451A (zh) * | 2018-01-29 | 2019-08-06 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN112035378A (zh) * | 2020-09-03 | 2020-12-04 | 北京百瑞互联技术有限公司 | 一种数据快速写入flash闪存的方法及系统 |
CN112199042A (zh) * | 2020-09-30 | 2021-01-08 | 深圳市汇顶科技股份有限公司 | 存储空间管理方法、装置、芯片、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113490112A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110780890B (zh) | 系统升级方法、装置、电子设备和介质 | |
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
CN106155915B (zh) | 数据存储的处理方法及装置 | |
US20140310698A1 (en) | Apparatus and method for upgrading firmware of mobile terminal | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN103299276A (zh) | 嵌入式装置的软件更新过程 | |
CN110333891A (zh) | 基于物联网的增强型ota升级的方法 | |
US9710340B2 (en) | Replacement of a corrupt driver variable record | |
EP2680137A1 (en) | Method and system for managing bios configuration data of basic input/output system | |
CN109614265B (zh) | 智能惯导传感系统的双备份系统及其配置启动方法 | |
CN110874237A (zh) | 软件升级方法、装置、终端以及可读存储介质 | |
CN108874582A (zh) | 一种系统恢复方法、装置及终端 | |
CN113821235A (zh) | 操作系统数据更新方法、设备、存储介质及程序产品 | |
CN111651304B (zh) | 基于双芯智能电表的软件恢复方法、装置和计算机设备 | |
CN113490112B (zh) | 一种无线耳机及无线耳机的数据处理方法、存储介质 | |
CN110007935B (zh) | 一种程序升级的处理方法、装置及设备 | |
CN112631625A (zh) | 嵌入式设备的系统升级方法、装置及嵌入式设备 | |
CN103455750B (zh) | 一种嵌入式设备的高安验证方法及装置 | |
CN105335166A (zh) | 嵌入式设备的系统及嵌入式设备远程升级的方法 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN113032183A (zh) | 系统管理方法、装置、计算机设备和存储介质 | |
US10324520B2 (en) | Technologies for discontinuous execution by energy harvesting devices | |
CN113778485A (zh) | 电子芯片的系统运行方法、装置、电子芯片和存储介质 | |
CN110795155A (zh) | 系统启动方法及装置、电子设备、存储介质 | |
CN104216797A (zh) | 嵌入式系统设定值设定系统、方法及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |