1、格式:#pragma CONST_SEG名称
解读:定义一个常数数据段,必须和const修饰关键词配置使用。该定义下的所有数据将被放置在程序只读的ROM区,并且需要.prm文件配合使用
1)在testmode.c中出现这个用法
#pragma CONST_SEG ECUINFO
Volatile const INT8U FlashECUInfo[12] ={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x05};
#pragma CONST_SEG DEFAULT
2)查看project.prm文件有如下定义:
SEGMENTS
ROM_ECUINFO = READ_ONLY 0xFE00 TO 0xFE1F;
END
PLACEMENT
ECUINFO INTO ROM_ECUINFO;
END
3)在源程序中将FlashECUInfo的12个字节数据放在CONST_SEG ECUINFO段,之后的程序放在default段。在prm中,分配ROM_ECUINFO段的地址0xFE00-0xFF1F。在编译时,把ECUINFO的数据放入ROM_ECUINFO。这样就实现源程序到实际物理地址的连接。
查看对应地址信息,和程序中一致:0FE00 FF FF FF FF FF FF FF FF FF F