CCSv6 调试问题

2019-03-24 09:41发布

大家好,我安装了CCSv6,用的芯片型号为 MSP430F2616,用MSP-FET430UIF JTAG调试工具。
想试试调试是不是好使,但是在调试代码时,发现有些语句根本就不执行,有的甚至很怪异。

第一次的代码为
  1. int main(void)
  2. {
  3.        WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer

  4.        int n = 0;

  5.        n = 5;
  6.        while(n--);
  7.        
  8.       return 0;
  9. }
复制代码 1.png
第二次的代码
  1. int main(void)
  2. {
  3.           WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer

  4.           int n = 0;

  5.           n = 5;
  6.           while(n)
  7.          {
  8.               n--;
  9.          }
复制代码 2.png 3.png
第三次 n 用全局变量,还是不行

  1. int n = 0;
复制代码 4.png
还请朋友们给看一下是怎么回事?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
CrazyCpu
1楼-- · 2019-03-25 07:49
多谢大家的分析,确实是由于优化的问题。CCSv6有一个默认的优化等级。
MSP430 工程初始默认时是
Current optimization/debug settings: --opt_level=0 --opt_for_speed=1 -g        T_Debug properties
这个设置会做一些代码优化,经过测试,闪烁小灯时的while()软件延时都会被优化掉。
可以通过 Windows -> Show view -> optimizer Assistant 来选择优化设置,并查看优化后的效果。

一周热门 更多>

相关问题

    相关文章