首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

非常不理解得问题,CodeWarrior对32位运算支持不够完整?

非常不理解得问题,CodeWarrior对32位运算支持不够完整?

非常不理解得问题,CodeWarrior对32位运算支持不够完整?
      最近有个问题困扰我好久了,我用的是 CodeWarrior 6.2 特别版 ,单片机是MC9S08AW60, 有个函数要用到 signed long int 数据类型,看了下HC08S手册 这个类型是32位的无符号变量,程序写完了,一运行就跑飞,后来跟踪调试发现时32位运算时程序出问题了,或者说内存操作过界,修改了附近的其他变量,使程序跑飞了,检查程序没发现程序有什么问题,以前也有过这种情况,后来改用 long int数据类型降低精度,才弄好了,我当时还怀疑是我程序没弄好,现在又出现这种问题了,我只好又把 signed long int 数据类型 改成 long int数据类,程序就能正常运行了,但随之而来的问题就内存溢出了,精度是不能再改低了,现在程序到这一步就卡死了,难道是编译器对32位的运算编译有BUG,内存分配有问题?请问有谁遇到过这样的问题,有什么办法解决?
你可以把堆栈空间增大试试(修改PRM文件的设置)。
海纳百川  有容乃大
同意楼上。
有次我用CW6.1做浮点运算,程序总是卡死,打电话到freescale去问,把堆栈从默认的0080改成0200就没事了。
多谢你分享宝贵经验。
海纳百川  有容乃大
谢谢,正解,回去试试,
返回列表