高通平台读写nv总结

一,引言
      1. 什么是NV
       高通平台的NV,保存了系统运行过程中各个模块可能用到的一些参数值,它是以单个文件的形式保存在EFS中,但用户是不能随意访问的,只能通过QXDM来进行读写。对于60X0平台,NV就有将近5千多项。
      
      2. 为什么要备份恢复NV
      NV值是需要通过校准和终测才能使手机硬件达到最佳工作状态,特别是其中的RF相关的NV项,经过校准及终测后,每台手机的这些NV值基本上都不一样,又加上NV数据是是存储在EFS,而EFS的数据很可能遭到破坏(如:重新烧写版本),这时的NV数据也将被破坏,之前校准和终测后的NV数据也将无法恢复,使得手机将面临重新走校准、终测的生产流程。

      3. 备份恢复的原则      
      备份:首先要确定需要备份的NV有那些项(一般是RF相关的),一旦检测到对NV项的修改,则在EFS中创建一个标志文件,在每次开机时判断这个标志文件是否存在而执行是否做备份。
      恢复:同样在每次开机的时候判断EFS中是否存在恢复标志文件,如果不存在则恢复NV,然后创建这个标志文件,创建成功后,下次开机就会不进行恢复。
      
二,NV的备份

      1. 备份的区域
      由于所需要备份的NV项不是很多(一般就几十项),所以我们可以在FLASH上开辟一块区域专门用于保存NV备份数据。备份区域是以一定的组织格式来存放数据的(如图):
      

      其中每个Item都是以:Item号+内容大小(Byte)+内容   的形式来存放的。比如第10项NV可能有2个值,分别是0x11,0x22,则它在FLASH中存放的形式就是:
      0a 00 00 00  02 00 00 00  11 22 --------(这里Item号、内容大小都是UINT32 类型)。

      2. 备份的时机
      一般一台机器在出厂前,都要通过终测仪进行校准、终测。这个过程就会修改到一些RF相关的NV项,也就是我们需要备份的NV。对于软件上来说,不管是用终测仪,或则高通的QPST,QXDM工具来修改NV项,最后都会调用到写NV的函数:nvdiag_write(),我们可以在这个函数里面创建备份标志文件,在下次系统启动时读取这个文件是否存在来判断是否要做备份。

      3. 备份的方法
      之前说过,高通的NV都是以单个文件的形式存放在EFS中,每个文件的文件名就是NV项的序列号,所以我们可以直接调用EFS的读函数nv_read来读取某个特定的NV项的值。

三,NV的恢复

      1. 恢复的时机
      恢复就是备份的逆过程,即把存放在FLASH中的备份数据恢复到EFS中对应的NV项中去。如果手机出厂以后一旦要进行软件升级,并且同时需要破坏EFS,则就不得不进行NV项的恢复。所以系统在每次开机运行时,都会检查文件系统中是否存在恢复标志文件,如果不存在则进行恢复并创建;反之则不恢复。这就要求我们每次发布的软件版本中打包的EFS不能包含这个标志文件。

      2. 恢复的方法
      进行恢复的时候就要读取备份区域中备份的每项NV,然后同样调用EFS的写函数nv_write把数据写到对于的NV项中。

四,小结
      目前几个项目都是使用这套备份恢复机制,通过反复实验,没有发现什么问题。之前的恢复标志是放在FLASH中,即在升级版本的时候在FLASH中设置一个标志位,在升级完成以后开机,读取这个标志位,如果存在则恢复,恢复成功后清除这个标志。但是在一个手机项目(采用spansion 250M nor+ 128M ram)经常遇到升级完版本开机运行缓慢的BUG,通过跟踪发现是在清除恢复标志的时候出了问题,之后把恢复标志也放到EFS中,这个BUG就没有出现。 现在怀疑是在恢复的时候,对FLASH的一个BANK进行同时读写导致的,有待进一步验证。

### 回答1: 高通NV修改是指对高通芯片中的Non-Volatile Memory(非易失性存储器)进行修改的过程。高通公司是半导体行业的领导者之一,其芯片在移动设备以及其他领域得到广泛应用。NV高通芯片中储存重要配置、校准数据和安全密钥等信息的重要部分,它以非易失的方式保存数据,即使设备断电也不会丢失。 在一些情况下,需要对高通NV进行修改以满足特定的需求。一种常见的情况是手机的用户通过root手机来获取更高的权限,并对系统进行自定义的修改。这就需要对高通NV进行修改,以允许用户对系统进行更深入的访问和控制。 另外,高通NV修改也可以用于一些专业的应用场景,如移动网络测试和研究领域。为了进行更精确的测试和研究,研究人员可能需要修改NV以调整和优化芯片的性能参数。 在进行高通NV修改时,需要小心谨慎,遵循高通的开发者指南和相应的法律法规。错误的NV修改可能导致设备无法正常工作或出现安全风险。因此,在进行NV修改之前,建议用户具备相关的知识和经验,或者寻求专业人士的帮助。 总的来说,高通NV修改是调整和修改高通芯片中非易失性存储器的过程,可以满足用户自定义需求和专业应用的需要。在进行NV修改时,需要谨慎操作,遵循高通的指南和规定,以确保设备的安全性和稳定性。 ### 回答2: 高通NV修改是指对高通芯片中的非易失性存储器(NVM)进行修改的技术。这项技术被广泛应用于计算机、手机等设备中,用于存储设备的参数设置和配置信息。 通过对高通芯片的NV进行修改,我们可以实现一些功能和性能上的调整。例如,我们可以修改芯片的电源管理策略,使其在不同的工作负载下可以更加智能地调整功耗和性能的平衡。这对于延长电池寿命和提升设备性能都非常有益。 此外,我们还可以通过NV修改来调整设备的网络连接参数和通信协议,从而达到更好的网络连接质量和稳定性。这对于手机和计算机等网络设备而言尤为重要,可以提升用户体验和数据传输效率。 除了这些功能调整之外,高通NV修改还可以用于设备的调试和故障排除。通过修改NV,我们可以获取设备的更多调试信息,诊断设备可能出现的问题,并进行相应的修复。 总而言之,高通NV修改技术可以让我们更加灵活地调整设备的功能和性能,并帮助我们更好地优化设备的使用体验。 ### 回答3: 高通NV修改(Non-Volatile Memory,非易失性存储器)是指对高通芯片上的NV存储区进行修改和调优。这个过程有助于优化芯片的性能和功能。 首先,NV存储器在高通芯片上扮演重要角色。它用于存储设备的配置信息、应用程序的数据和设置,以及其他系统数据。通过修改NV存储器,我们可以进行一系列优化。 首先,我们可以通过修改NV存储器来增强设备的性能。例如,可以调整CPU的频率和电压设置,以提高处理速度和效率。此外,还可以优化GPU的性能和功耗,以实现更好的图形处理能力。 其次,NV修改可以定制设备的功能和特性。通过修改NV存储器中的配置信息,我们可以启用或禁用某些功能。例如,我们可以调整无线通信模块的设置,或者启用高级音频编码功能。 另外,NV修改还可以解锁某些隐藏功能。有时,高通芯片上的某些功能被禁用或限制了。通过修改NV存储器,我们可以解锁这些功能,从而实现更多的定制和个性化设置。 需要注意的是,NV修改需要谨慎操作。错误的修改可能会导致设备性能下降、功能异常或无法使用。因此,建议在专业人士的指导下进行操作,或者使用经过验证和可靠的工具进行NV修改。 总结来说,高通芯片的NV修改是一项优化和定制芯片功能的技术。通过对NV存储器进行修改和调优,我们可以增强设备的性能,定制功能和特性,以及解锁隐藏功能。这需要谨慎操作,确保安全和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值