米尔淘宝店| 米尔电子| 米尔微博| English

KEIL MDK提示:warning: #61-D: integer operation result is out of

问题类别:ARM 开发工具 > DS-5 浏览次数:5114
发布日期:2012-04-23 17:14:55 文章来源:米尔科技
回复日期:2013-11-28 14:09:38

环境说明

KEIL MDK中国版3.05 及以上

分析描述

rBDICNT0 = (3<<30) | (1<<26) | (3<<22) | (1<<20) | 216; Code\initialize.c(73): warning: #61-D: integer operation result is out of range. rBDICNT0 是寄存器变量,无符号型的,只要变量值到达31位就出这样的警告。

问题解答

      问题分析:
      MDK-ARM中国版所使用的编译器是严格检查赋值是否会产生溢出的及符号改变的,从而上述警告是正常的。
      问题解决:
      可以修改为:
      rBDICNT0 = (3U<<30)|....; 或者rBDICNT0 = ((u32)3<<30)|....; 就可以避免警告了。

技术支持服务指南

在线提交问题

常见问题解答