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