[AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试


  

关键词

嵌入式、C语言、autosar、OS、BSW

平台说明

项目Value
OSautosar OS
autosar厂商vector , EB
芯片厂商TI 英飞凌
编程语言C,C++
编译器HighTec (GCC)
autosar版本4.3.1

在这里插入图片描述
  
  
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

背景

   创建一个简单的Native block 并且调试其读写。

  • 调试工具:劳特巴赫
  • 配置工具:vector 工具链

一、需求

   创建一个NVRAMblock,

  • 大小为1byte,
  • short name为NvM_cluster3,
  • NvMRamBlockDataAddress 为RamBlock_NvM_cluster3
  • NvMRomBlockDataAddress 为NvMRamBlockDataAddress
  • NvMBlockManagementType 为NATIVE
  • 使用write_all ,read_all.

二、配置

2.1 NvMBlockDescriptors

在这里插入图片描述

2.2 NvMFeeRef

在这里插入图片描述

2.3 FeeBlockConfigurations

在这里插入图片描述
   block size 为5 的原因是 开启了crc32 校验,占用了4个byte。

三、code

   在NvM_Cfg.c生成
在这里插入图片描述

3.1 声明和定义

在NvM_Cfg.c中包含一个.h文件,,h文件中声明RamBlock_NvM_cluster3和RomBlock_NvM_cluster3。

typedef struct __attribute__((packed))
{
  uint8 NVM_cluster3data[1];
}RamBlock_NvM_cluster3data_S;


extern RamBlock_NvM_cluster3data_S RamBlock_NvM_cluster3;
extern const RamBlock_NvM_cluster3data_S RomBlock_NvM_cluster3;

在另一个.C文件中 定义

RamBlock_NvM_cluster3data_S RamBlock_NvM_cluster3 = {0};

const RamBlock_NvM_cluster3data_S RomBlock_NvM_cluster3 = {0};

3.2 调试

创建一个10ms 周期task,在task_10ms.c中定义

uint8 NVM_test_flag_u8_D = 0U;
uint8 NVM_read_D = 0U;

NVM_test_flag_u8_D用于在劳特巴赫中控制写入和读取nvblock。
NVM_read_D用于保存从NVblock中读取的值。

if(NVM_test_flag_u8_D == 2)
{
    NVM_test_flag_u8_D =0;
    NvM_ReadBlock(NvMConf_NvMBlockDescriptor_NvM_cluster3,&NVM_read_D);
}
else if(NVM_test_flag_u8_D == 3)
{
    NVM_test_flag_u8_D = 0;
    RamBlock_NvM_cluster3.NVM_cluster3data[0]=66;
    NvM_WriteBlock(NvMConf_NvMBlockDescriptor_NvM_cluster3,NULL_PTR);
}
else
{

}

调试步骤:

    1. 劳特巴赫中修改NVM_test_flag_u8_D == 3,将66写入NvMConf_NvMBlockDescriptor_NvM_cluster3中。
    1. 下电。
    1. 上电。
  • 4.在劳特巴赫中修改NVM_test_flag_u8_D ==2,如果成功读取到NVM_read_D =66,则表示存储成功。

>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老灰╮(╯-╰)╭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值