嵌入式调试过程卡死机记录

最近做项目时,偶尔调试会遇到死机的情况,幸好以前程序写得多,都能大概记得一点原因,想想还是记下来吧,好记星不如烂笔头,万一哪天忘了呢还能在博客里面找找。



1.变量超范围。


今日例子:20141220

   /*Get Value MMA8451*/
  Angle = LPLD_MMA8451_GetResult(MMA8451_STATUS_Z_READY, MMA8451_REG_OUTZ_MSB);
  /*Get Value L3G4200*/   
  Acc = L3G4200_GetZ();

//  Angle_Out = Angle_P * Angle + Angle_D * Acc; 

今天调PD控制的时候,意外发现,死机了,K60死机了。。

它竟然死机了,想想发现,以前貌似也遇到过。待我一看,发现,原来是我的Angle_Out变量超范围了。


uint32 Angle_Out;

即int型的变量Angle_Out范围


小记事本:

C语言的int类型与开发环境平台有关,可能是16位(2^16),也可能是32位(2^32),估计现在大多数开发环境都是用32位的,所以范围远远超出65535,可达到4294967296

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值