Board logo

标题: 非常不理解得问题,CodeWarrior对32位运算支持不够完整? [打印本页]

作者: chinaboy20    时间: 2010-4-20 10:16     标题: 非常不理解得问题,CodeWarrior对32位运算支持不够完整?

非常不理解得问题,CodeWarrior对32位运算支持不够完整?
      最近有个问题困扰我好久了,我用的是 CodeWarrior 6.2 特别版 ,单片机是MC9S08AW60, 有个函数要用到 signed long int 数据类型,看了下HC08S手册 这个类型是32位的无符号变量,程序写完了,一运行就跑飞,后来跟踪调试发现时32位运算时程序出问题了,或者说内存操作过界,修改了附近的其他变量,使程序跑飞了,检查程序没发现程序有什么问题,以前也有过这种情况,后来改用 long int数据类型降低精度,才弄好了,我当时还怀疑是我程序没弄好,现在又出现这种问题了,我只好又把 signed long int 数据类型 改成 long int数据类,程序就能正常运行了,但随之而来的问题就内存溢出了,精度是不能再改低了,现在程序到这一步就卡死了,难道是编译器对32位的运算编译有BUG,内存分配有问题?请问有谁遇到过这样的问题,有什么办法解决?
作者: strongchen    时间: 2010-4-21 09:52

你可以把堆栈空间增大试试(修改PRM文件的设置)。
作者: zhangqilcx    时间: 2010-4-21 14:44

同意楼上。
有次我用CW6.1做浮点运算,程序总是卡死,打电话到freescale去问,把堆栈从默认的0080改成0200就没事了。
作者: strongchen    时间: 2010-4-22 09:37

多谢你分享宝贵经验。
作者: chinaboy20    时间: 2010-4-27 12:21

谢谢,正解,回去试试,




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0