《AUTOSAR谱系分解(ETAS工具链)》之NvM

《AUTOSAR谱系分解(ETAS工具链)》之NvM

NvM

在这里插入图片描述

NvMBlockDescriptors

  • NvMBlockDescriptor

    • NvMBlockCrcType

      • NVM_CRC16
      • NVM_CRC32
    • NvMBlockHeaderInclude

    • NvMBlockJobPriority

      • EXP:

        • EXP:
          NvMJobPrioritization(优先级队列)的优先级,数值越小优先级越高,【 0…255】。
    • NvMBlockManagementType

      • NVM_BLOCK_NATIVE

        • EXP:
          1个NV Block,
          1个RAM Block,
          0-1个ROM Block,
          1个Administrative Blocks
      • NVM_BLOCK_REDUNDANT

        • EXP:
          2个NV Block,
          1个RAM Block,
          0-1个ROM Block,
          1个Administrative Blocks,
          通过该类型可以实现数据的冗余备份存储。
      • NVM_BLOCK_DATASET

        • EXP:
          1-256个 NV Block
          1个RAM Block,
          0-255个ROM Block,
          1个Administrative Blocks
          并通过索引选择操作对象,提高了系统的灵活性
    • NvMBlockUseCrc

    • NvMBlockUseSyncMechanism

      • EXP:显示同步使能

        • EXP:Enables/disables the explicit synchronization mechanism with a RAM mirror and callback routines for transferring data to and from NvM module’s RAM mirror.
    • NvMInitBlockCallback

    • NvMNvBlockLength

      • EXP:RamBlock的长度(Byte)
    • NvMNvBlockNum

      • EXP:

        • EXP:
          NVM_BLOCK_NATIVE时1个;
          NVM_BLOCK_REDUNDANT时2个;
          NVM_BLOCK_DATASET时多个。
    • NvMNvramBlockIdentifier

      • EXP:

        • EXP:用户通过 Block ID 访问 NvM 的 Block
    • NvMNvramDeviceId

      • EXP:

        • EXP:MemIf 可以同时管理EA 和FEE,通过NvM Block 的 DeviceId 配置属性,进行识别,在访问对应的Device Api(EA 的Device ID Fee 的Device ID)
    • NvMNvramBlockDataAddress

      • EXP:

        • EXP:RamBlock的变量地址
    • NvMRbBlockPersistentId

    • NvMRbGenRteServicePort

    • NvMReadRamBlockFromNvCallback

      • EXP:

        • EXP:Name of the block-specific callback routine which shall be invoked in order to let the application copy data from the NvM module’s mirror to RAM block (see also the NvMBlockUseSyncMechanism parameter). If you explicitly want to specify that no such callback routine shall be called, enter NULL_PTR here.
          For a user located above RTE and if NvMRbGenRteServicePort is set to TRUE, the name of this callback has to be set as: “Rte_Call__Mirror_ReadRamBlockFromNvmNvM”.
    • NvMSignaleBlockCallback

    • NvMWriteRamBlockToNvCallback

      • EXP:

        • EXP:Name of the block-specific callback routine which shall be invoked in order to let the application copy data from the NvM module’s mirror to RAM block (see also the NvMBlockUseSyncMechanism parameter). If you explicitly want to specify that no such callback routine shall be called, enter NULL_PTR here.
          For a user located above RTE and if NvMRbGenRteServicePort is set to TRUE, the name of this callback has to be set as: “Rte_Call__Mirror_ReadRamBlockFromNvmNvM”.
    • NvMBlockCrcType

NvMCommon

  • NvMApiConfigClass

    • NVM_API_CONFIG_CLASS_3
  • NvMJobPrioritization

    • 启用NvMJobPrioritization(优先级队列)
  • NvMManFunctionCycleTime

  • NvMSetRanBlockStatusApi

  • NvMSizeImmediateJobQueue

    • EXP:

      • EXP:

        • EXP:优先级队列即高优先级的请求会先被执行。启用 NvMJobPrioritization 时,
          NvM 使用优先级队列( Immdieta)。
  • NvMSizeStandardJobQueue

    • EXP:

      • EXP:

        • EXP:FCFS(First Come First Serve ) 队列即先发出的请求会先被执行。
  • NvMPollingMode

EXP:Block

  • Ram Block

    • Block Header

    • Block Data

    • Block CRC

    • EXP:

      • EXP:

        • EXP:位于 RAM 中, 存放应用待读/待写的数据
  • Rom Block

    • Block Data

    • EXP:

      • EXP:

        • EXP:位于 PFlash 中,存放 Block 默认数据,
          用于数据读取失败后恢复默认数据
  • Administrative Block

    • EXP:

      • EXP:

        • EXP:位于 RAM 中,保存所有Data Block
          的错误/状态/Crc 等信息
  • NV Block

    • Block Header

    • Block Data

    • Block CRC

    • EXP:

      • EXP:

        • EXP:位于非易失性存储器中, 用于保存非易失数据

EXP:同步

  • 隐式同步(Implicit synchronization )

    • EXP:

      • EXP:

        • EXP:APP中直接调用NVM的接口对数据进行操作
  • 显式同步(explicit synchronization )

    • EXP:

      • EXP:

        • EXP:定义了一个RAM Mirror用于和APP进行数据交换,APP调用NvM_WriteBlock的时候写数据到RAM Block中,此时数据仍然可以被修改,因为数据还没有写到最终的Nv Block,调用NVM数据操作NvMWriteRamBlockToNvM的时候数据被Copy到内部的Mirror中,最后将数据写到Nv Block。

EXP:Workflow

  • EXP:

    • EXP:

      • EXP:

        • 在ASW中创建一个NvMemoryBlock类型的ASW,并创建对应的SWC
        • 在SWC中建立对应的Nv Block的Descriptor(与服务层的Nv Block的内容一致),并创建对应的数据结构体
        • 配置对应的RAM Block、ROM Block以及相关的操作属性(操作类型、触发函数、同步方式等)
        • 创建Nv Data Interface并建立与RAM Block的Mapping
        • 配置周期触发的函数用于触发周期的存储操作
        • 在NvM服务层Check对应的ASW的Block配置
        • 生成Rte产生周期调用的函数以及SetMirror and GetMirror(主要是对NvBuffer的数据到RAM Block操作的Copy操作) callback 来读写Rte中的RamMirror,在操作过程中一般采用加锁操作避免数据操作过程中被修改。
        • 在SWC调用Nv Data Interface的时候实现了数据从RAM Block到SWC定义的变量的读写操作

《AUTOSAR谱系分解(ETAS工具链)》之总目录

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值