RAM区被清零

[复制链接]
1851|8
手机看帖
扫描二维码
随时随地手机跟帖
五谷道场| | 2011-6-16 18:50 | 显示全部楼层
程序see see

使用特权

评论回复
spark周|  楼主 | 2011-6-16 19:04 | 显示全部楼层
void initCLK()
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop Watchdog Timer
  if (CALBC1_8MHZ ==0xFF || CALDCO_8MHZ == 0xFF)                                    
  {  
    while(1);                               // If calibration constants erased
                                            // do not load, trap CPU!!
  }   
  BCSCTL1 = CALBC1_8MHZ;                    // Set DCO to 8MHz
  DCOCTL = CALDCO_8MHZ;
}

使用特权

评论回复
spark周|  楼主 | 2011-6-16 19:05 | 显示全部楼层
运行到最后此函数最后一句后,RAM区被清零导致 SP指向的堆栈区被清零 导致RET返回到了程序起始位置

使用特权

评论回复
jiaxw| | 2011-6-16 19:31 | 显示全部楼层
改成1M的话呢

使用特权

评论回复
spark周|  楼主 | 2011-6-16 19:33 | 显示全部楼层
改成1M的话 RAM区就正常

使用特权

评论回复
jiaxw| | 2011-6-16 21:26 | 显示全部楼层
也能返回正确地址吧

使用特权

评论回复
午夜粪车| | 2011-6-16 21:28 | 显示全部楼层
msp430 2132的DCO不能到8M??手册上说能16M呢!

使用特权

评论回复
spark周|  楼主 | 2011-6-16 21:48 | 显示全部楼层
是啊,哎

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

821

主题

10121

帖子

4

粉丝