MSP430RAM内数组分配问题,实验结果

在iar 5.3环境下使用MSP430F4152器件,遇到数组分配问题。当定义超过435个元素的数组DT时,IAR报错。实验中,DT数组被赋值0x55,DT1数组被赋值0xAA,DT1覆盖了DT的部分数据,导致内存中数值被意外修改。这种现象在烧录到芯片后可能依然存在,记录下来以备后续排查。
摘要由CSDN通过智能技术生成
 起因:考虑将部分参数存入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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值