打印

调试程序时有些语句不执行,求救!

[复制链接]
3068|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
youhu520|  楼主 | 2014-1-22 21:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dirtwillfly| | 2014-1-22 22:23 | 只看该作者
建议楼主把程序传上来看看

使用特权

评论回复
板凳
youhu520|  楼主 | 2014-1-23 10:16 | 只看该作者
这段程序我主要是想通过硬件仿真看看运算结果,程序如下:

定义全局变量
long DutyFine;
long Ref ;
long TempInt;
long TEMP1;
long TEMP3;

主程序里调用函数VoltageAdj()  

Void VoltageAdj(void)

TempInt=_IQ20(0.785);
Ref=_IQ20(0.62);
DutyFine =_IQ20sin(TempInt);
TempInt=_IQ20mpyIQX(DutyFine,20,Ref,20);          
TEMP1=_IQ16mpyIQX(TempInt,20,1500,0);   
input=TEMP1;
TEMP1=TEMP1>>16;
TEMP3=(1500-TEMP1)>>1;                                                             
TEMP1=TEMP3+TEMP1;                 
DutyFine=_IQ29(3.14159);  
input=TempInt;

红色部分为函数不能执行的语句,硬件仿真时,程序直接从TempInt=_IQ20mpyIQX(DutyFine,20,Ref,20);          这一句跳到了DutyFine=_IQ29(3.14159);
跨过来了红色部分,导致程序运行不对。其中红色部分也不能设置断点。非红色部分程序能正常运行,结果正确。CCS版本为4.12。

使用特权

评论回复
地板
rcengtian| | 2014-1-23 14:40 | 只看该作者
有可能编译器设置的优化选项不对吧?

使用特权

评论回复
5
dirtwillfly| | 2014-1-23 15:35 | 只看该作者
难道被优化掉了?

使用特权

评论回复
6
youhu520|  楼主 | 2014-1-24 08:53 | 只看该作者
楼上两位说的对,是编译器优化了,原来工程在CCS3.3下调试,默认优化等级为NONE,从版本CCS4.1.2导入该工程后,优化等级莫名的被改为3.不知为何故??

我再将优化等级改为空,编译后调试,程序运行没有任何问题,结果正确。不知为什么这部分程序会被优化,真是想不明白,有高手能否指点下??

使用特权

评论回复
7
msblast| | 2014-1-24 12:53 | 只看该作者
youhu520 发表于 2014-1-24 08:53
楼上两位说的对,是编译器优化了,原来工程在CCS3.3下调试,默认优化等级为NONE,从版本CCS4.1.2导入该工程 ...

没有用的就优化掉喽。。。

使用特权

评论回复
8
firstblood| | 2014-1-26 14:09 | 只看该作者
看下你的变量的定义的是否合适的吧

使用特权

评论回复
9
dirtwillfly| | 2014-1-26 22:21 | 只看该作者
楼主问题解决了吗?解决了记得及时及时结贴哦~~
结贴方法:https://bbs.21ic.com/icview-442857-1-1.html

使用特权

评论回复
10
dirtwillfly| | 2014-1-26 22:22 | 只看该作者
不同版本的CCS导入工程后有时会出现一些奇怪的问题。建议重新建立工程,复制代码文件,然后重新编译

使用特权

评论回复
11
shenmu2012| | 2014-1-26 23:38 | 只看该作者
不是很明白这方面的问题的。。

使用特权

评论回复
12
youhu520|  楼主 | 2014-2-11 09:16 | 只看该作者
为什么会出现工程从CCS3.3版本导入CCS4.1.2,就会出现优化等级被改变呢?

使用特权

评论回复
13
hh312| | 2014-2-20 14:38 | 只看该作者
我从CCS5开始用的,编译的时候,会提示一些“变量有赋值,但没使用”,像这段代码,temp1、temp2什么的都是赋值而不使用,可能被优化没了。或者优化的代码,逐步运行时会乱跳的,可能是乱跳而已,不是没执行。至于程序出错,可以考虑使用volatile关键字,我被这个坑了好多次。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:还不来拜见我!

5

主题

56

帖子

0

粉丝