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