通信终端及其非易失性数据的处理方法
技术领域
本发明涉及通信领域,特别涉及一种通信终端及其非易失性数据的处理方法。
背景技术
目前,随着通信领域中智能手机的兴起,“AP+Modem”方案盛行,其中AP(Application Processor)可以称为应用处理单元,负责所有应用程序的处理,Modem(Modulation demodulation)可以称为调制解调处理单元,负责所有通信软件的执行。AP部分与Modem部分是彼此分开的,两者之间通过AT命令进行通信,例如:拨打电话时,AP通过AT命令控制Modem,而有来电时,Modem通过AT命令通知AP。
为了节约成本,“AP+Modem”方案中出现了“无NAND Modem”的方案,即在Modem中不设置非易失性存储器,而将Modem的固件(Firmware)包括非易失性(NV,Not Volatile)数据都存储在AP侧的非易失性存储器中。
在手机的生产线上,对射频参数进行校准是一个非常重要的环节,当校准后的射频参数作为Modem的NV数据的一部分写入AP侧的非易失性存储器后,如何在无NAND Modem的固件升级时备份校准后的射频参数,如何保证Modem的NV数据在破坏后能自动恢复,如何防止校准后的射频参数丢失是必须解决的问题。
目前已有的方案大多是在AP侧用两个分区保存NV数据(保存NV数据的分区可简称为NV分区),这两个分区互为备份,一旦某个分区的NV数据被破坏,可从另一个分区恢复。然而,这两个分区在通信终端的正常运行中都是可写的,一旦在写的过程中出现非法掉电等情况则会导致NV数据被破坏,校准后的射频参数就无法得以恢复,从而影响通信终端射频性能。
发明内容
本发明解决的问题是在通信终端的正常运行中,数据写入过程中因非法掉电等情况导致NV数据被破坏,校准后的射频参数就无法得以恢复,从而影响通信终端射频性能。
为解决上述问题,本发明技术方案提供一种通信终端,包括调制解调处理单元和应用处理单元,所述调制解调处理单元未设置非易失性存储器,所述应用处理单元设置的非易失性存储器包括互为备份的第一分区和第二分区,所述调制解调处理单元的非易失性数据存储于所述第一分区和第二分区,所述应用处理单元的非易失性存储器还包括:第四分区,适于存储所述调制解调处理单元的非易失性数据中与所述通信终端的硬件相关的参数数据,所述参数数据包括校准后的射频参数;所述第四分区在所述通信终端的正常工作中的写入操作受到限制。
为解决上述问题,本发明技术方案还提供一种通信终端的非易失性数据的处理方法,所述调制解调处理单元的易失性存储器包括适于存储所述第一分区的非易失性数据的第一存储区域、适于存储所述第二分区的非易失性数据的第二存储区域以及适于存储所述第四分区的非易失性数据的第四存储区域;所述处理包括备份,所述处理方法包括:
在所述应用处理单元上电后,若所述第一分区和第二分区不为空,则将所述第一分区和第二分区的非易失性数据分别复制到所述第一存储区域和第二存储区域;
在对射频参数进行校准之后,由所述调制解调处理单元将校准后的射频参数写入所述第一存储区域和第二存储区域,并将所述第一存储区域内的所有数据复制到所述第四存储区域;
所述调制解调处理单元将更新后第一存储区域、第二存储区域和第四存储区域的非易失性数据分别同步到所述第一分区、第二分区和第四分区。
可选的,所述通信终端的非易失性数据的处理方法还包括:
在所述调制解调处理单元将所述第四存储区域的非易失性数据同步到所述第四分区后,所述应用处理单元从所述第四分区读取同步后的数据进行校验,并将校验后的结果与所述调制解调处理单元对所述第四存储区域内的数据进行校验后的结果进行比较;
若两者校验结果不一致,则提示对所述校准后的射频参数的备份失败。
可选的,所述第一存储区域和第二存储区域的非易失性数据中的每一个数据项具有对应的校验数据;所述通信终端的非易失性数据的处理方法还包括:在将校准后的射频参数写入所述第一存储区域和第二存储区域后,将所述第一存储区域内的所有数据复制到所述第四存储区域之前,更新所述校准后的射频参数对应数据项的校验数据。
可选的,所述将所述第一存储区域内的所有数据复制到所述第四存储区域包括:将更新后的所述校验数据复制到所述第四存储区域。
可选的,所述处理还包括恢复,所述通信终端的非易失性数据的处理方法还包括:
在所述调制解调处理单元进行系统初始化时,通过所述校验数据对所述第一分区和第二分区的非易失性数据进行错误校验;
若非易失性数据中的任一数据项的校验数据发生错误,则识别出该非易失性数据所在的分区被破坏;
以未被破坏的分区存储的非易失性数据恢复被破坏分区的非易失性数据。
可选的,所述以未被破坏的分区存储的非易失性数据恢复被破坏分区的非易失性数据包括:
若所述被破坏分区为所述第一分区,则以所述第二分区的非易失性数据恢复所述第一分区的非易失性数据;
若所述被破坏分区为所述第二分区,则以所述第一分区的非易失性数据恢复所述第二分区的非易失性数据;
若所述被破坏分区为所述第一分区和第二分区,则以所述第四分区的非易失性数据恢复所述第一分区和第二分区的非易失性数据。
可选的,所述应用处理单元的非易失性存储器还包括第三分区,适于存储下载所述调制解调处理单元的固件后所获得的相应非易失性数据,所述调制解调处理单元还包括适于存储所述第三分区的非易失性数据的第三存储区域;所述非易失性数据的处理方法还包括:
在下载所述调制解调处理单元的固件后,将获得的相应非易失性数据存储于所述第三分区;
在所述应用处理单元上电后,若所述第一分区、第二分区和第四分区为空,则将所述第三分区中的非易失性数据复制到所述调制解调处理单元的易失性存储器的第三存储区域;
当所述调制解调处理单元进行系统初始化时,若所述第一存储区域和第二存储区域为空,则将所述第三存储区域中的非易失性数据复制到所述第一存储区域;
对复制到所述第一存储区域的非易失性数据中的每一个数据项生成对应的校验数据,所述校验数据存于所述第一存储区域内的预定存储位置;
将所述第一存储区域内的所有数据复制到所述第二存储区域;
当所述调制解调处理单元完成系统初始化后,将所述第一存储区域和第二存储区域内的数据分别同步到所述第一分区和第二分区。
可选的,所述通信终端的非易失性数据的处理方法还包括:
在所述应用处理单元上电后,若所述第一分区、第二分区和第四分区不为空,则将所述第一分区、第二分区、第三分区和第四分区的非易失性数据分别复制到所述第一存储区域、第二存储区域、第三存储区域和第四存储区域;
当所述调制解调处理单元进行系统初始化时,若所述第一存储区域的非易失性数据与所述第三存储区域的非易失性数据的时间戳不一致,则比较所述第一存储区域的非易失性数据和第三存储区域的非易失性数据中的所述参数数据的数据结构是否一致,是则从第一存储区域内的非易失性数据中解析出所述参数数据,并与所述第三存储区域内除所述参数数据以外的其他数据进行合成,以合成后的数据更新所述第一存储区域的非易失性数据,否则直接以所述第三存储区域的非易失性数据更新所述第一存储区域的非易失性数据;
以更新后的第一存储区域内的所有数据更新所述第二存储区域;
当所述调制解调处理单元完成系统初始化后,将更新后的第一存储区域和第二存储区域的非易失性数据分别同步到所述第一分区和第二分区。
可选的,所述通信终端的非易失性数据的处理方法还包括:在所述以更新后的第一存储区域内的所有数据更新所述第二存储区域之前,对更新后的所述第一存储区域内的非易失性数据的每一个数据项重新生成对应的校验数据。
与现有技术相比,本发明的技术方案至少具有以下优点:
通过在AP侧的非易失性存储器增加第四分区,用于保存诸如校准后的射频参数等一些较为重要的与通信终端的硬件相关的参数数据,并且只在生产线上对通信终端进行校准完,保存参数数据时写入一次,此后通信终端的正常运行中对于所述第四分区的写入操作受到限制,这样可以保证参数数据的正确性,从而达到准确备份参数数据和错误恢复的目的。
附图说明
图1是本发明实施例一的通信终端的结构示意图;
图2是本发明实施例一的通信终端的非易失性数据的处理方法的流程示意图;
图3是本发明实施例一的对校准后的射频参数进行备份的过程示意图;
图4是本发明实施例三的通信终端的结构示意图;
图5是本发明实施例三的通信终端的非易失性数据的处理方法的流程示意图;
图6是本发明实施例三的第一次下载Modem固件时NV数据备份的过程示意图;
图7是本发明实施例四的通信终端的非易失性数据的处理方法的流程示意图;
图8是本发明实施例四的Modem固件升级时NV数据备份的过程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
实施例一
现有技术中,AP侧虽然用两个互为备份的分区保存NV数据,能够确保某分区中的数据被破坏后以另一个分区中的数据进行恢复。然而,这两个分区在通信终端的正常运行中都是可写的,一旦在写的过程中出现非法掉电等情况则会导致NV数据被破坏,校准后的射频参数等一些较为重要的与硬件相关的参数数据就无法得以恢复,从而影响通信终端射频性能。
因此,本实施例在AP侧的非易失性存储器内增加一个NV分区(即第四分区),用于保存如校准后的射频参数、国际移动设备身份识别码(IMEI,International Mobile Equipment Identity)等与硬件设备相关的参数数据,该NV分区只在生产线上对通信终端校准完毕,保存校准后的射频参数时写入一次,此后通信终端正常运行中不可写,这样可以保证所述参数数据的正确性。
如图1所示,本实施例提供的通信终端包括调制解调处理单元2和应用处理单元1,所述调制解调处理单元2未设置非易失性存储器,所述应用处理单元1设置的非易失性存储器10包括互为备份的第一分区101和第二分区102,所述调制解调处理单元2的非易失性数据存储于所述第一分区101和第二分区102,所述应用处理单元1的非易失性存储器10还包括:第四分区104,适于存储所述调制解调处理单元2的非易失性数据中与所述通信终端的硬件相关的参数数据,所述参数数据包括校准后的射频参数;所述第四分区104在所述通信终端的正常工作中的写入操作受到限制。所述第四分区104内存储的参数数据可以在第一分区101和第二分区102内存储的数据均遭到破坏时,对第一分区101和第二分区102进行恢复。
继续参阅图1,所述调制解调处理单元2的易失性存储器20还包括适于存储所述第四分区104的非易失性数据的第四存储区域204。
本实施例中,所述参数数据包括校准后的射频参数,在其他实施例中,所述参数数据还可以包括IMEI、通信终端中无线通信设备(例如蓝牙、WLAN)的MAC(Media Access Control)地址等等。
在具体实施时,所述通信终端具体可以是采用“AP+Modem”架构的智能手机;所述非易失性存储器10可以是闪存(Flash),例如NAND、NOR等,也可以是嵌入式多媒体卡(eMMC,embeded Multi Media Card),还可以是只读存储器(ROM,Read-Only Memory);所述易失性存储器20可以是随机存储器(RAM,Random Access Memory),例如同步动态随机存储器(SDRAM,Synchronous Dynamic Random Access Memory)。本发明实施例中,以所述非易失性存储器10具体是NAND Flash,所述易失性存储器20具体是SDRAM为例进行说明。
需要说明的是,所述第四分区104并非是简单地增加第三个与所述第一分区101和第二分区102的结构和功能相类似的分区,而是对Modem的NV数据分层次进行备份的体现,即根据NV数据的重要程度进行不同方式的备份操作。所述第四分区104内备份的一般是NV数据中那些一旦确定便永不修改的数据,这些数据通常是与通信终端的硬件相关的参数,而且第四分区104仅在首次写入参数数据时可执行写入操作,在通信终端正常运行中不支持写入操作,这样能够防止参数数据被破坏,参数数据的正确性得以确保。
基于上述通信终端,本实施例还提供一种通信终端的非易失性数据的处理方法,所述处理包括备份。如图2所示,所述非易失性数据的处理方法包括:
步骤S201,在AP上电后,若所述第一分区和第二分区不为空,则将第一分区和第二分区的NV数据分别复制到第一存储区域和第二存储区域;
步骤S202,在对射频参数进行校准之后,由Modem将校准后的射频参数写入第一存储区域和第二存储区域;
步骤S203,在将校准后的射频参数写入第一存储区域和第二存储区域后,更新所述校准后的射频参数对应数据项的校验数据;
步骤S204,将第一存储区域内的所有数据复制到第四存储区域;
步骤S205,Modem将更新后第一存储区域、第二存储区域和第四存储区域的NV数据分别同步到第一分区、第二分区和第四分区;
步骤S206,在Modem将第四存储区域的NV数据同步到第四分区后,AP从第四分区读取同步后的数据进行校验,Modem对第四存储区域内的数据进行校验;
步骤S207,比较AP校验后的结果与Modem校验后的结果是否一致;
若两者校验结果不一致,则执行步骤S208,提示对校准后的射频参数的备份失败。在实际实施时,AP的校验结果与Modem的校验结果不一致通常是由于物理接口产生问题而导致的同步失败,此时需要提示对校准后的射频参数的备份失败,以便在解决物理接口产生的问题后重新对其进行备份。
执行上述步骤S206的“校验”和步骤S207的“比较”的过程,以保证第四存储区域内的数据已正确无误地同步到第四分区,完成对所述校准后的射频参数的备份。
上述非易失性数据的处理方法适用于所述通信终端在对射频参数进行校准后NV数据的备份过程,下面结合图3、图2和图1对此作进一步说明。
需要说明的是,图3中的各方框分别对应图1中示出的通信终端的存储器件及存储器件的分区或存储区域,为了体现各分区或各存储区域内存储数据的变化,在图3的方框内标识的内容为图1中相应分区或存储区域在不同情况下存储的数据;另外,所述应用处理单元1的非易失性存储器10(本实施例中具体表示为AP Flash)与所述调制解调处理单元2的易失性存储器20(本实施例中具体表示为Modem RAM)之间数据的传输以竖线填充的粗箭头表示,Modem RAM内部各存储区域之间数据操作过程以斜线填充的粗箭头表示。
在第一次下载Modem固件后,第一分区101存储有NV数据“FIX_NV”,第二分区102存储有NV数据“PRO_NV”,由于此时的“FIX_NV”和“PRO_NV”中均包括未经校准的射频参数,因此在通信终端的生产线上,还需要对射频参数进行校准,而第四分区104暂未存储任何数据,如图3所示,将第四分区104中的存储情况表示为“RFBK_NV NULL”。
此外,图3中还示出了AP Flash包含的存储区域100,其存储的“CodeImage”为一些可执行代码的镜像文件,用于在Modem运行过程中执行,至少能够实现对Modem的各存储区域进行数据写入、写出和读取等操作,从而完成Modem固件的下载和升级过程。本领域技术人员能够理解的是,存储区域100可以是AP Flash中独立的存储空间,此处不再详细描述。
步骤S201中,当AP上电后,将第一分区101存储的“FIX_NV”和第二分区102存储的“PRO_NV”通过AP和Modem的物理通信接口如SDIO、SPI等传给Modem,放到Modem RAM相关区域,即第一存储区域201和第二存储区域202。
本实施例中,第一存储区域201和第二存储区域202的NV数据中的每一个数据项具有对应的校验数据,所述校验数据存于所述第一存储区域和第二存储区域内的预定存储位置。具体地,第一次下载Modem固件时NV数据的备份过程中,会对第一存储区域201存储的NV数据中的每一个NV数据项(NV item)生成一个循环冗余校验码(CRC,Cyclic Redundancy Check)放到第一存储区域201的后1K字节处。此处对每一个NV数据项添加CRC是用来对NV数据进行校验以验证其正确性,若某NV数据对应的数据项的CRC校验失败,则表明该NV数据所在分区被破坏,需要进行NV数据的恢复。具体恢复方法将在实施例二详细说明,第一次下载Modem固件时NV数据的备份过程将在实施例三进行说明。
在本实施例中,所述校验数据具体为CRC数据,所述第一存储区域和第二存储区域内的预定存储位置具体指的是第一存储区域201的后1K字节处以及第二存储区域202的后1K字节处。在其他实施例中,可以生成其他类型的校验数据,所述校验数据的预定存储位置也可以是其他存储位置。
需要说明的是,AP除了将第一分区101和第二分区102中存储的NV数据传送到Modem RAM的第一存储区域201和第二存储区域202,还会将存储区域100中的Code Image传送到Modem RAM的存储区域200中,Modem从存储区域200中读取Code Image执行,从而实现相应操作。
为了对缺省的射频参数进行校准处理,Modem上电运行后进入校准模式,对未经校准的射频参数进行校准处理,并通过步骤S202将校准完毕保存的校准后的射频参数写入第一存储区域201和第二存储区域202。参阅图3,Modem通过执行存储区域200内的Code Image,将校准后的射频参数写入第一存储区域201和第二存储区域202,完成写入后,第一存储区域201内存储的数据由“FIX_NV”变更为“FIX_NV(Cali)”,第二存储区域202内存储的数据由“PRO_NV”变更为“PRO_NV(Cali)”,“FIX_NV(Cali)”和“PRO_NV(Cali)”都表示的是写入校准后的射频参数的NV数据。
将校准后的射频参数写入第一存储区域201和第二存储区域202后,由于第一存储区域201和第二存储区域202内的射频参数进行了更新,因此有必要重新确定相应数据项的校验数据,即通过步骤S203更新所述校准后的射频参数对应数据项的校验数据。本实施例中,所述重新生成的校验数据具体同样是CRC数据,存放的位置仍然是第一存储区域201的后1K字节处。
完成将校准后的射频参数写入第一存储区域201后,就需要通过步骤S204将第一存储区域201内的所有数据(包括更新后的所述校验数据,具体即后1K字节处的CRC数据)复制到第四存储区域204,以便后续在进行同步操作时,能够将校准后的射频参数写入第四分区104,从而完成对校准后的射频参数的备份。如图3所示,Modem通过执行存储区域200内的Code Image,将第一存储区域201的所有数据写入第四存储区域204后,第四存储区域204内的存储情况由“RFBK_NV NULL”变更为“RFBK_NV”。
在完成对第四存储区域204的数据写入后,通过步骤S205将更新后的第一存储区域201、第二存储区域202和第四存储区域204内存储的所有数据通过底层物理通信接口同步给AP,再由AP分别保存在AP Flash的第一分区101、第二分区102和第四分区104。如图3所示,完成数据同步之后,AP Flash中的第一分区101内存储的数据表示为“FIX_NV(Cali)”,第二分区102内存储的数据表示为“PRO_NV(Cali)”,第四分区104内存储的数据表示为“RFBK_NV”。
由于写入第四分区104的数据在通信终端的正常运行中写入操作会受到限制,因此需要确保同步操作未发生错误,这样才能保证以后用第四分区104的数据恢复被破坏分区时的正确性。通过步骤S206至S208的执行则能够确保第四存储区域204内的数据准确无误地写入第四分区104。
步骤S206在具体实施时,当第四存储区域204内的数据同步给AP保存后,AP会从AP Flash上将第四分区104的数据再读出来,将所有数据做校验和(checksum),Modem端也会对第四存储区域204内的所有数据做checksum,将两者的checksum结果进行比较,如果一致,则认为第四分区104内的数据保存正确,完成了对校准后的射频参数的备份,以此来确保第四分区104内的数据绝对是正确可靠的。
实施例二
在实施例一的基础上,本实施例还涉及对被破坏分区的非易失性数据进行恢复。
本实施例提供的通信终端的非易失性数据的处理方法包括:在所述调制解调处理单元进行系统初始化时,通过所述校验数据对所述第一分区和第二分区的非易失性数据进行错误校验;若非易失性数据中的任一数据项的校验数据发生错误,则识别出该非易失性数据所在的分区被破坏;以未被破坏的分区存储的非易失性数据恢复被破坏分区的非易失性数据。
在具体实施时,在Modem进行系统初始化时,可以通过各存储区域内后面1K字节处保存的CRC数据对NV数据进行错误校验,一旦某个NV数据项的CRC错误,则认为该存储区域对应的分区已经被破坏。
可结合图1,在实际实施时,所述以未被破坏的分区存储的非易失性数据恢复被破坏分区的非易失性数据可以通过如下方式进行:
若被破坏分区为第一分区101,则以第二分区102的NV数据恢复第一分区101的NV数据;
若被破坏分区为第二分区102,则以第一分区101的NV数据恢复第二分区102的NV数据;
若被破坏分区为第一分区101和第二分区102,则以第四分区104的NV数据恢复第一分区101和第二分区102的NV数据。
由于第四存储区域204只在校准模式下写入一次,其他时候通常都不可写入,而在校准模式下Modem将第四存储区域204内的数据同步给AP保存后,AP和Modem都会对各自存储的数据做checksum校验,如果校验结果一致则说明第四分区内的数据保存正确。因此可以认为第四分区内存储的数据总是正确的,能够准确恢复被破坏分区。
实施例三
本实施例对第一次下载Modem固件时NV数据的备份过程进行说明。
现有方案通常是由AP对NV数据升级和参数数据备份,在此过程中需要AP侧对Modem的NV数据的数据结构进行解析,然而,Modem的NV数据对AP来说应该是透明的,AP不需要关心其格式和结构,因此现有方案增加了AP与Modem之间的耦合性。
针对该缺点,本实施例中在AP侧的非易失性存储器内再增加一个NV分区(即第三分区),下载Modem的NV数据时,AP只需将NV数据写进该NV分区,不需进行任何解析,由Modem开机时自行进行NV数据升级和参数数据备份,从而能减少AP与Modem之间的耦合性。
如图4所示,在实施例一提供的通信终端的基础上,本实施例的所述应用处理单元1的非易失性存储器10还包括:第三分区103,适于存储下载所述调制解调处理单元2的固件后所获得的相应非易失性数据。
继续参阅图4,在本实施例中,所述调制解调处理单元2的易失性存储器20还包括适于存储所述第三分区103的非易失性数据的第三存储区域203。
基于上述通信终端,本实施例还提供一种通信终端的非易失性数据的处理方法。如图5所示,所述非易失性数据的处理方法具体包括如下步骤:
步骤S501,在下载Modem的固件后,将获得的相应NV数据存储于第三分区;
步骤S502,在AP上电后,若第一分区、第二分区和第四分区为空,则将第三分区中的NV数据复制到Modem的第三存储区域;
步骤S503,当Modem上电并进行系统初始化时,若第一存储区域和第二存储区域为空,则将第三存储区域中的NV数据复制到第一存储区域;
步骤S504,对从第三存储区域复制到第一存储区域的NV数据中的每一个数据项生成对应的校验数据,所述校验数据存于第一存储区域内的预定存储位置;
步骤S505,将第一存储区域内的所有数据复制到第二存储区域;
步骤S506,当Modem完成系统初始化后,将第一存储区域和第二存储区域内的数据分别同步到第一分区和第二分区。
上述非易失性数据的处理方法适用于所述通信终端在第一次下载Modem固件以及开机时NV数据的备份过程,下面结合图6、图5和图4对此进行详细说明。
需要说明的是,图6中的各方框分别对应图4中示出的通信终端的存储器件及存储器件的分区或存储区域,为了体现各分区或各存储区域内存储数据的变化,在图6的方框内标识的内容为图4中相应分区或存储区域在不同情况下存储的数据;另外,AP Flash与Modem RAM之间数据的传输以黑色填充的粗箭头表示,Modem RAM内部各存储区域之间数据操作过程以斜线填充的粗箭头表示。
在步骤S501中,对Modem的固件进行第一次下载时,AP会将相应的Modem NV数据保存在AP Flash(即所述非易失性存储器10)的第三分区103,此时第三分区103中存储的NV数据为首次下载的NV数据,以“DL_NV”表示,在Modem固件首次下载时,DL_NV既包含缺省的与所述通信终端的硬件相关的参数数据,例如未经校准过的射频参数(uncalibrated RFparameter)、IMEI等,还包含缺省的与所述通信终端的硬件不相关的参数数据,例如一些软件的默认设置参数;而第一分区101、第二分区102和第四分区104中则并未存储任何数据,即第一分区101、第二分区102和第四分区104为空,分别以“FIX_NV NULL”、“PRO_NV NULL”和“RFBK_NV NULL”表示。
此外,图6中还示出了AP Flash包含的存储区域100,其存储的“CodeImage”为一些可执行代码的镜像文件,用于在Modem运行过程中执行,至少能够实现对Modem的各存储区域进行数据写入、写出和读取等操作,从而完成Modem固件的下载和升级过程。本领域技术人员能够理解的是,存储区域100可以是AP Flash中独立的存储空间,也可以作为所述第三分区103的一部分,此处不再详细描述。
本实施例中,当下载Modem的固件后,便可以在通信终端开机时通过Modem自行进行NV数据的备份,而不再需要AP对NV数据的数据结构进行解析。
在步骤S502中,当AP上电后,若判断出第一分区101、第二分区102和第四分区104为空,则表明Modem固件是第一次下载,此时只需将第三分区103中存储的DL_NV通过AP和Modem的物理通信接口如安全数字输入输出接口(SDIO,Secure Digital Input and Output)、串行外设接口(SPI,SerialPeripheral Interface)等传送给Modem,放到Modem RAM(即所述易失性存储器20)的相关区域(第三存储区域203)。其中,判断第一分区101、第二分区102和第四分区104是否为空可以通过读取分区所存储的数据的前4个字节,如果为0xFFFFFFFF,则认为该分区为空。
需要说明的是,AP除了将第三分区103中存储的DL_NV传送到ModemRAM的第三存储区域203,还会将存储区域100中的Code Image传送到Modem RAM的存储区域200中,Modem从存储区域200中读取Code Image执行,从而实现相应操作。此外,由于第四分区104为空,那么其对应的第四存储区域204也为空,第四存储区域204的存储情况以“RFBK_NV NULL”表示,并且在第一次下载Modem固件时NV数据的备份过程中也不对第四分区104或第四存储区域204进行读写操作。
在步骤S503中,Modem上电运行后,在系统初始化时判断出第一存储区域201、第二存储区域202为空(同样可以通过读取存储数据的前4个字节,如果为0xFFFFFFFF,则认为该存储区域为空),则将第三存储区域203中的所有数据复制到第一存储区域201。如图6所示,通过执行存储区域200内的Code Image,实现NV数据由第三存储区域203到第一存储区域201的复制,完成复制后,第一存储区域201存储的NV数据以“FIX_NV”表示,而不再是“FIX_NV NULL”。
步骤S504在具体实施时,对第一存储区域201存储的NV数据中的每一个NV数据项(NV item)生成一个循环冗余校验码(CRC,Cyclic RedundancyCheck)放到第一存储区域201的后1K字节处。此处对每一个NV数据项添加CRC是用来对NV数据进行校验以验证其正确性,若某NV数据对应的数据项的CRC校验失败,则表明该NV数据所在分区被破坏,需要进行NV数据的恢复,具体恢复方法参阅实施例二。
在本实施例中,步骤S504中所述校验数据具体为CRC数据,所述第一存储区域内的预定存储位置具体指的是第一存储区域201的后1K字节处。在其他实施例中,可以生成其他类型的校验数据,所述校验数据的预定存储位置也可以是其他存储位置。
步骤S505是将第一存储区域201内的数据进行备份的过程。具体地,通过执行存储区域200内的Code Image,将第一存储区域201内的所有数据(包括后1K字节处的CRC数据)全部复制到第二存储区域202。参阅图6,在完成复制后,对第二存储区域202内存储数据的表示由“PRO_NV NULL”变更为“PRO_NV”。
步骤S506中,在Modem完成系统初始化后(此时通信终端处于待机状态),会将新生成的第一存储区域201和第二存储区域202内存储的所有数据通过底层物理通信接口同步给AP,再由AP保存在AP Flash的相应分区,即第一分区101和第二分区102。如图6所示,完成数据同步之后,AP Flash中的第一分区101内存储的数据表示为“FIX_NV”,第二分区102内存储的数据表示为“PRO_NV”。
至此,第一次下载Modem固件时对于NV数据的备份已经完成,由于下载Modem的NV数据后,AP只需将该NV数据直接写进第三分区,不需要进行任何解析,由Modem开机时自行进行NV数据解析和备份,使AP与Modem之间的耦合性大大降低。
需要说明的是,本实施例的一些相关细节也可参考实施例一中的相关说明,此处不再赘述。
实施例四
在实施例三的基础上,本实施例对Modem固件升级时NV数据的备份过程进行说明。
如图7所示,本实施例提供的通信终端的非易失性数据的处理方法包括:
步骤S300,在AP上电后,若第一分区、第二分区和第四分区不为空,则将第一分区、第二分区、第三分区和第四分区的NV数据分别复制到Modem的第一存储区域、第二存储区域、第三存储区域和第四存储区域;
当Modem进行系统初始化时,执行步骤S301,判断第一存储区域的NV数据与第三存储区域的NV数据的时间戳是否一致,是则表明Modem固件无需升级,否则执行步骤S302。
执行步骤S302,判断第一存储区域的NV数据和第三存储区域的NV数据中的所述参数数据的数据结构是否一致,是则执行步骤S303,否则执行步骤S304。
当步骤S302的判断结果为“是”,执行步骤S303,从第一存储区域内的NV数据中解析出所述参数数据,并与第三存储区域内除所述参数数据以外的其他数据进行合成。
步骤S303之后,执行步骤S305,以合成后的数据更新第一存储区域的NV数据。
当步骤S302的判断结果为“否”,执行步骤S304,直接以第三存储区域的NV数据更新第一存储区域的NV数据。
步骤S305或步骤S304执行完毕后,执行步骤S306,对更新后的第一存储区域内的NV数据的每一个数据项重新生成对应的校验数据。
步骤S306之后,执行步骤S307,以更新后的第一存储区域内的所有数据更新第二存储区域;
当Modem完成系统初始化后,执行步骤S308,将更新后的第一存储区域和第二存储区域的NV数据分别同步到第一分区和第二分区。
上述非易失性数据的处理方法适用于所述通信终端在Modem固件升级时NV数据的备份过程,下面结合图8和图7对此作进一步说明。
需要说明的是,由于在第一次下载Modem固件后,第三分区103中已存有NV数据“DL_NV”,当需要对Modem固件进行升级时,仍然会将新下载的NV数据保存在第三分区103(替换此前存储的NV数据),为了区别于实施例一中的“DL_NV”,如图8所示,本实施例中将第三分区103中存储的升级后的NV数据表示为“DL_NV(NEW)”;此外,在第一次下载Modem固件后,第一分区101存储有NV数据“FIX_NV”,第二分区102存储有NV数据“PRO_NV”,由于此时的“FIX_NV”和“PRO_NV”中均包括未经校准的射频参数,因此在通信终端的生产线上,还需要对射频参数进行校准,而通常需要对Modem固件进行升级时,第一分区101、第二分区102和第四分区104中存储的NV数据中包括的均是校准后的射频参数,为了以示区别,仍然参阅图8,本实施例中将第一分区101存储的NV数据表示为“FIX_NV(Cali)”,将第二分区102存储的NV数据表示为“PRO_NV(Cali)”,将第四分区104存储的NV数据表示为“RFBK_NV(Cali)”,至于对校准后的射频参数进行备份的过程请参阅实施例一。
步骤S300中,当AP上电后,若判断出第一分区101、第二分区102和第四分区104不为空,则表明Modem固件不是第一次下载,此时需分别将第一分区101存储的FIX_NV(Cali)、第二分区102存储的PRO_NV(Cali)、第三分区103存储的DL_NV(NEW)和第四分区104存储的RFBK_NV(Cali)通过AP和Modem的物理通信接口如SDIO、SPI等传给Modem,放到ModemRAM的相关存储区域,即第一存储区域201、第二存储区域202、第三存储区域203和第四存储区域204,参阅图8,这四个存储区域内存储的数据分别为FIX_NV(Cali)、PRO_NV(Cali)、DL_NV(NEW)和RFBK_NV(Cali)。
需要说明的是,将第四分区104存储的RFBK_NV(Cali)传给第四存储区域204后,在Modem固件升级时NV数据的备份过程中,通常不会对第四存储区域204进行读写操作,除非在Modem系统初始化时判断出其他分区被破坏的情况,则需要以第四存储区域204内存储的RFBK_NV(Cali)恢复被破坏的分区,具体恢复方法请参考实施例二。
本实施例中,步骤S301中所述时间戳具体为NV数据的前4个字节,在NV数据生成的时候由工具自动添加,因此步骤S301判断第一存储区域201的NV数据与第三存储区域203的NV数据的时间戳是否一致,只需要读取各自NV数据的前4个字节进行比较即可实现。
当通过步骤S301判断出第一存储区域201的NV数据与第三存储区域203的NV数据的时间戳不一致时,则还需要进一步通过步骤S302比较第一存储区域201的NV数据和第三存储区域203的NV数据中的所述参数数据(包含校准后的射频参数)的数据结构是否一致,如果两者数据结构不一致,则可以提示“参数数据丢失”,并通过执行步骤S304以第三存储区域203的NV数据更新第一存储区域201的NV数据,如果两者数据结构一致,则没必要对第一存储区域201内的所有数据都进行更新,所述参数数据无需更新,特别是其中包含的校准后的射频参数,因此可以通过步骤S303从第一存储区域201内的NV数据中解析出所述参数数据,并与第三存储区域203内除所述参数数据以外的其他数据进行合成,然后通过执行步骤S305以合成后的数据更新第一存储区域201的NV数据。
图8示出了Modem通过执行存储区域200内的Code Image,以所述合成后的数据更新第一存储区域201的NV数据的过程,完成更新后,第一存储区域201存储的NV数据以“FIX_NV(Cali+N)”表示,而不再是“FIX_NV(Cali)”,表明已经完成了对第一存储区域201内除参数数据以外的其他NV数据的更新。
当完成对第一存储区域201内NV数据的更新后,通过步骤S306对更新后的第一存储区域201内的NV数据的每一个数据项重新生成对应的校验数据。本实施例中,所述重新生成的校验数据具体同样是CRC数据,存放的位置仍然是第一存储区域201的后1K字节处。
在第一存储区域201内NV数据更新完毕并重新生成校验数据后,便可以对第一存储区域201的数据进行备份,即执行步骤S307,以更新后的第一存储区域201内的所有数据(包括后1K字节处的CRC数据)更新第二存储区域202。步骤S307的执行也可以参阅图8,Modem通过执行存储区域200内的Code Image,以第一存储区域201的数据更新第二存储区域202的数据,在完成更新后,对第二存储区域202内存储数据的表示由“PRO_NV(Cali)”变更为“PRO_NV(Cali+N)”。
步骤S308中,在Modem完成系统初始化后(此时通信终端处于待机状态),会将更新后的第一存储区域201和第二存储区域202内存储的所有数据通过底层物理通信接口同步给AP,再由AP分别保存在AP Flash的第一分区101和第二分区102。如图8所示,完成数据同步之后,AP Flash中的第一分区101内存储的数据表示为“FIX_NV(Cali+N)”,第二分区102内存储的数据表示为“PRO_NV(Cali+N)”。
至此,Modem固件升级时NV数据的备份已经完成,与第一次下载Modem时NV数据的备份类似,AP只需将固件升级相关的NV数据直接写进第三分区,不需要进行任何解析,由Modem开机时自行进行NV数据升级和备份,使AP与Modem之间的耦合性大大降低。
需要说明的是,本实施例的一些相关细节例如判断某个分区或存储区域是否为空、存储区域100和存储区域200以及存储的“Code Image”等等,可参考实施例一或实施例三中的相关说明,此处不再赘述。
综上,本发明实施例提供的无NAND Modem的NV数据的处理方法,在AP端NAND或eMMC上存储Modem的NV数据,为了方便下载备份和错误恢复,用4个不同分区进行存储。开机后AP通过底层物理通信接口将4个NV分区的数据传给Modem,分别保存在SDRAM的不同地址区中。Modem开机后会对这些NV分区数据进行解析,从而达到备份参数数据和错误恢复的目的,解决了无NAND Modem固件升级后备份校准后的射频参数的问题,以及NV数据破坏后自动恢复的问题。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。