当前位置: 首页 > news >正文

DaVinci配置NVM模块

NvMBlockDescriptors

Automatic Block Length自动块长度。用一个最大的空间来装数据,实际的块长度是 sizeof(RAM块) , 会导致在E方或者flash里面有一些没用上的区域。

Block Base Number这东东没用,不用填

Block Identifier就是个序号,从1开始,会自己生成和排序。

Block Length NV RAM块的数据有多少字节,需要预留CRC的位置。

NVM跟FEE的名字不需要一模一样,可能会有错位。

Block Length Check启用或禁用块长度检查功能。在编译时会检查RAM块和ROM块长度,长度无效时会导致编译错误。

Block Length Check Strict块长度检查应采用严格模式还是非严格模式

严格模式:配置的长度必须与相应的RAM块或ROM块的长度完全一致。

非严格模式:配置的块长度必须小于或等于相应的 RAM 或 ROM 的长度,只有在启用块长度检查且禁用自动块长度的情况下才可用。

Block NV RAM Data Length指定RAM块长度,可以大于Nv块长度。有RAM块就可以不进行指定了

Block Post Read Transform Callback读取块回调函数,一般不用

Block Pre Write Transform Callback预写入回调函数,一般不用

Block Status Information有改变的时候通知BSWM

Block Use CRC CompMechanism将RAM块的CRC值与上一次成功读取或写入操作中计算出的CRC值进行比较

Block Use Set Ram Block Status调用NvMSetRamBlockStatus接口的时候,对该块有效,否则将忽略。调用过这个接口,再writeall才会写入。所以这个标志位也通过IOC传输过来。

Calc Ram Block Crc对RAM块重新计算CRC,其实就是在RAM块里面加了CRC,在调用NvM_SetRamBlockStatus的时候进行重新计算,在NvM_ReadAll的时候会对RAM进行校验。

每次调用NvM_SetRamBlockStatus函数时请求重新计算RAM CRC的目的是为了在出现复位(短暂断电、看门狗复位)的情况下仍能重新使用RAM中的数据。NvM假定RAM中的数据比NVRAM中的数据更新。

在 NvM_ReadAll 处理过程中,NvM 会针对所有配置中启用了 SelectBlockForReadAll 和 CalcRamBlockCrc 的 NVRAM 块进行此类操作:如果该块在内部仍被标记为有效,则 NVM 会根据当前 RAM 块的内容计算 CRC 值,并将其与存储在其他位置的值进行比较。如果两者匹配,则不会修改 RAM 内容;相反,NVM 会假装已成功从 NV 中读取了这些值。

由于NvM在处理任务的同时会并行计算内存块的CRC,所以内部会有两个缓冲区!一个用于任务处理(也将被显式同步机制所使用),一个用于计算内存块循环余校验功能的选项。

Check Loss Of Redundancy读取冗余数据块时是否也需检查该数据块的冗余数据,

Crc Type校验类型

Crc usage启用NVRAM块的CRC

Csm Decryption Job Reference引用CSM解密任务,该任务用于在从NVRAM中读取加密数据后对其进行解密。

Csm Encryption Job Reference引用CSM加密任务,该任务用于在将原始数据写入非易失性内存之前对其进行加密。

Csm Mac Generation Job Reference引用CSM MAC生成任务,该任务用于生成MAC以确保数据块的数据完整性。

Csm Mac Size用于确保数据块完整性所使用的实际 MAC 的大小

Csm Mac Verification Job Reference引用CSM MAC验证任务,该任务用于验证先前生成的块的MAC值。

Datasets连续多少块NV块,根据Block Management Type生成,只能看不能改。

Device Id设备ID,不用填写

Init Block Callback没有可用的ROM数据用于初始化NVRAM块时,将调用该回调函数。

Init Block Callback Extended相对上一个配置项允许直接写入数据指针

Invoke Callbacks For Read All调用NvM_ReadAll接口的时候对该块是否起作用

Invoke Callbacks For Write All调用NvM_WriteAll接口的时候对该块是否起作用

Block Management Type管理类型

Max Num Of Read Retries读取操作的最大重试次数,没有用

Max Num Of Write Retries写入操作的最大重试次数,没有用

Priority指定RAM块作业优先级,0最高,127最低

Ram Block Data指定RAM块的名称,如果为空则没有RAM块。

Read Ram Block From Nv Callback该函数将在APP需要将NvM模块的镜像数据复制到RAM块时被调用,这是根据上一个配置生成的,无法修改。

Resistant To Changed Sw指定RAM块对软件更改具有抵抗能力

Rom Block Data Address一个连续区域内多个ROM块的数量,没有用

Select Block For Read All该RAM块在NvM_ReadAll里面被带着处理

Select Block For Write All该RAM块在NvM_WriteAll里面被带着处理

Single Block Callback对该块请求终止时调用的回调函数

Single Block Callback Extended上一个配置的扩展板

Static Block ID Check对NVRAM的静态块ID检查,在计算CRC的时候,根据块ID、数据索引和实际数据,也就是把块ID参与计算CRC的方式来检查块ID。没有用

Use Init Callback初始化回调用于提供默认数据

Use Job end Callback在块处理完成后是否调用特定块的Single Block Job End Notification,也就是回调函数

Use Service Ports可通过服务端口进行访问,一般不开启

Use Sync Mechanism使用同步机制,与RAM镜像以及用于在NvM模块的RAM镜像之间传输数据的回调程序相关的明确同步机制来处理此块数据。若使用该机制,则必须将NvMReadRamBlockFromNvCallback和NvMWriteRamBlockToNvCallback这两个函数均设置为相应的函数名称。也就是开启显式同步机制。

Write Block Once写入一次之后就保护掉,不能操作了

Block Write Prot初始化之后就进入写保护

Write Ram Block To Nv Callback在APP将数据从内存块复制到NvM模块的镜像时被调用

Write Verification写入操作验证,没有用

Write Verification Data Size比较内存块内容与回读的块内容时,在每一步中需要比较的字节数。没有用

NvMFeeRef:NameOfFeeBlock

因为有这个,所以不用关心跟FEE的排序要统一。

NvMCommon

Api Config Class配置类,类的数据越大,功能越多,不能修改

MainFunctionPeriod主函数NvM_MainFunction调用周期

CompiledConfigId配置ID,写个1就行。

CrcNumOfBytes在一次NvM_MainFunctionCall中用于计算CRC以及进行内部复制操作所处理的最大字节数。因此,此参数会影响 NvM_MainFunction 的最长运行时间,从而也会影响NvM_MainFunction 的调用周期(NvMMainFunctionPeriod)的设置。一般来说,Crc Number of Bytes值越小,调用周期就越小(速度也越快),反之亦然。

CsmRetryCounter指定CSM 加密/解密任务的重试次数

DatasetSelectionBits指定了用于在与内存硬件抽象接口的NVRAM块内对特定Dataset块进行寻址的最低有效位的数量。

DetectedLossOfRedundancyCallback在读取数据块时检测到冗余丢失时通知回调函数

DevErrorDetect开发者错误检测

DrvModeSwitch在执行NvM_ReadAll和NvM_WriteAll操作时将交换内存驱动程序切换至快速模式

DynamicConfiguration通过NvM_ReadAll请求进行的动态配置管理处理

JobPrioritization启用优先级作业

MaxNoOfWriteRetries指定NVRAM块的最大写入重试次数。对于由请求NvM_WriteAll和NvM_WriteBlock处理的每个块,都会强制执行一致性检查和重试操作。

MultiBlockCallback每个异步多块请求终止时应调用的通用回调函数

MultiBlockJobStatusInformation当ReadAll和WriteAll操作启动、完成或取消时调用BswM_NvM_CurrentJobMode函数通知BSWM

PollingMode启用轮询模式

RepairRedundantBlocksApi启动了名为“修复冗余块”的 NVM 背景任务,该任务会遍历所有已配置的冗余块,并在NV内存中检查其冗余性。如果冗余性丢失,该任务将尝试进行修复。为什么么有启用?

RepeatMirrorOperations在推迟当前任务之前,APP从NvM模块的镜像中复制数据所需的重试次数,没有用。

SafeBswChecks是否启用安全检查

SetRamBlockStatusApi使能NvM_SetRamBlockStatus接口

SizeImmediateJobQueue立即优先级作业队列中的队列条目数量

SizeStandardJobQueue标准作业队列中的队列条目数量

UseBlockIdCheck将会检查通过底层模块传输的数据是否属于所请求的NvM块。由于NvM使用CRC校验码,因此只有配置了CRC的块才能通过此功能进行验证!如果没有配置CRC的块,此功能将不会被使用!

NvMVersionInfoApi使能NvM_GetVersionInfo接口

http://www.jsqmd.com/news/1022571/

相关文章:

  • 独立开发者如何为Cursor等海外SaaS工具开具合规发票与报销指南
  • 遗传算法第二部分:选择压力、交叉合法性与自适应变异
  • Ray Ozzie协作哲学与Ray框架:构建离线优先、最终一致的分布式系统
  • XSS漏洞靶场搭建:从原理到实践的Web安全入门指南
  • 2026 济南二奢回收行业实测:5 家名包回收门店深度横评,实力排名出炉 - 禹竞
  • 计算机毕业设计之jspm家庭学校一体化教育系统的设计与实现
  • 徐州考 CPPM 多久能拿证? - 中供国培
  • 你的SEO排名明明第一,用户却再也看不到你了
  • 2026乌兰察布建筑工程材料检测 CMA 机构哪家强?TOP 正规检测中心榜单 + 电话地址 - 中检检测集团
  • 2026阳泉旧金铂金白银回收高信赖门店 TOP 线下实体商家电话与门店地址一览 - 诚金汇钻回收公司
  • 2026松原商户高频选择的 5 家公共卫生第三方检测机构实地测评整理 公共场所 + 水质卫生检测 附电话地址 - 鉴安检测
  • 石家庄全城贵金属回收优选门店 TOP5 黄金回收铂金回收白银回收正规商家地址汇总 - 中安检金银铂钻回收
  • Skill体系技术设计:企业智能体的能力内核
  • 基于RK3588的高性能无人机飞控系统:从视觉SLAM到AI识别的全栈实践
  • 【Agent Harness】AI连个前端Web页面都做不出来,凭什么让我信它能写后端?
  • 深入解析防爆认证ex ia Ⅱc T3:原理、设计与工程实践
  • 2026甘肃贵金属旧料回收优质实体店精选 5 家 黄金回收铂金白银回收真实探店测评清单 - 中业金奢再生回收中心
  • XPath自愈技术:基于概率排序的鲁棒元素定位方案
  • 2026陕西当地贵金属回收权威名录 TOP5 黄金金条铂金白银回收线下门店信息汇总 - 信誉隆金银铂奢回收
  • 2026年淮南市初三没考上高中怎么办?这所淮南本地公办学校值得关注 - 我叫小周
  • 如何5分钟掌握网易游戏NPK文件解压:从入门到精通完整指南
  • 2026年想换B2B系统,从“易用性+性价比”角度,求推荐
  • 从监管数据看:重庆黄金回收合规门店怎么分辨 - 讯息早知道
  • 2026苹果手机照片去除背景保姆级教程,iPhone相册一键抠图保存透明背景全步骤 - AI测评专家
  • 2026深圳闲置黄金盘活指南|本地高性价比服务机构盘点 - 奢侈品回收测评
  • Mythos模型:可规模化漏洞挖掘的AI安全新范式
  • 物联网技术在源网荷储系统中的创新应用
  • 2026龙岩商户高频选择的 5 家公共卫生第三方检测机构实地测评整理 公共场所 + 水质卫生检测 附电话地址 - 鉴安检测
  • AI工作流实现Excel自动化+SQL,零 VBA ,零公式,电商订单分析案例 | DTBot
  • 从Laggle到Kaggle:数据科学竞赛平台访问与实战指南