AUTOSAR的memmap模块

本文详细介绍了AUTOSAR中memmap模块的作用,主要用于配置生成内存映射文件《xx_Mmemmap.h》。内容包括如何通过memmap模块将代码和变量映射到指定的Flash区域,以及配置参数的解析,如MemMapAddressingModeSets、MemMapAllocations和MemMapModules。此外,还提供了映射CONST变量到FLASH的具体步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Memmap模块说明

   该模块主要配置生成《xx_Mmemmap.h》文件的,不是所有map文件都可以生成,大部分Vector提供的BSW模块都包含自己的map文件,最好不要通过Memmap模块修改这些文件,这些模块Vector都已经比较完善了,但是可以手动添加映射的内存段,内存段是在VlinkGen模块配置的,你可以修改《MemMap_Common.h》这个文件,该文件可以将你生成的SWC代码和变量映射到指定flash区域,该模块需要和VlinkGen模块配合才能将一段代码和变量映射到指定内存区域;

  1. Memmap模块怎么将代码和变量映射到flash,看例子更具体,下面是BAC包中和Vector工具配置将一段CONST变量映射到FLASH指定位置,

<1>、要想映射必须在源码(.c)中声明如下:一般变量声明的头文件也要添加

#define Bm_START_SEC_CONST_MAGIC_DATA_UNSPECIFIED//宏_Start,宏可以自己定义,用memmap工具生成在map文件里面,表示变量开始的位置

#include "Bm_MemMap.h"//添加那个map文件管理该变量的映射

const uint8 Bm_MagicWord[8] = {0x3Au, 0xC5u, 0x91u, 0x6Eu, 0xB8u, 0x47u, 0x2Fu, 0xD0u };//具体的需要被分配的变量

#define Bm_STOP_SEC_CONST_MAGIC_DATA_UNSPECIFIED//宏_stop,宏开关结束的位置,

#include "Bm_MemMap.h"//添加那个map文件管理该变量的映射

<2>、在指定的map文件里添加映射的段指令,段是由VlikGen配置的,指令和芯片架构相关,举例如下:

defined (Bm_START_SEC_CONST_MAGIC_DATA_UNSPECIFIED)//宏_Start

#undef Bm_START_SEC_CONST_MAGIC_DATA_UNSPECIFIED

  /*@@@vikawml: Mapping to global section in MemMap.h*/

  #define START_SEC_CONST_UNSPECIFIED

  #ifdef CHK_Bm_SEC_STARTED

    #error "Bm section not closed"

  #endif

  #define CHK_Bm_SEC_STARTED

  #define CHK_Bm_SEC_CONST_MAGIC_DATA_STARTED

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

2301_76538452

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

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

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

打赏作者

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

抵扣说明:

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

余额充值