程序中定义文件编译时间到FLASH固定区域:
#pragma DATA_SECTION(App_Date,"AppDate"); const unsigned char App_Date[] = __DATE__" "__TIME__;
最终bin文件中效果如下图:

可以看到每1个字符实际占用了2个字节(16bits)
有没有什么技巧可以对数组进行压缩,使其占用空间减半?
在将这些信息写入Mobdus寄存器时,需要单独处理,感觉不是好方便。
/** 将程序信息存入SysReg*/
void PutInfoToSysReg(const unsigned char* infoData,Uint16 infoLength,Uint16 sysRegBase)
{
Uint16 i = 0;
Uint16 val = 0;
Uint16 infoLenHalf= 0;
infoLenHalf = infoLength / 2;
for(i = 0;i < infoLenHalf; i++)
{
val = ((Uint16)*(infoData + i * 2 + 1)<<8) | *(infoData + i * 2);
SysHolding_Set(sysRegBase + i,val);
}
if(infoLength % 2 != 0)
{
SysHolding_Set(sysRegBase + infoLenHalf,*(infoData + infoLength - 1));
}
}