起因:考虑将部分参数存入FLASH,信息段是256字节。当时多考虑了一步,万一RAM不够怎么修改FLASH内数据啊。随做如下实验,结果表明,全局变量和局部变量总和超过RAM空间时,仿真状态是相互覆盖,没有实际烧写运行。
环境:iar 5.3
器件:MSP430F4152
代码如下:
unsigned char DT[431]; //这个431是随便定义的,超过435IAR就报错了
int main( void )
{
unsigned char DT1[300];
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
FCTL2 = FWKEY + FSSEL0 + FN1; // MCLK/3 for Flash Timing Generator
//value = 0; // initialize value
for(int i=0;i<431;i++)
{
DT[i]=0x55;
}
for(int i=0;i<200;i++)
{
DT1[i]=0xaa;
}
unsigned char aa=DT[400];
DT[400]=0X33;
}