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条回答
lidonglei1
1楼-- · 2019-03-24 13:04
感觉是n没有用到被优化掉了,编译时应该会出现相关警告吧
CrazyCpu
2楼-- · 2019-03-24 16:14
< :TI_MSP430_内容页_SA7 -->
lidonglei1 发表于 2015-11-13 13:25
感觉是n没有用到被优化掉了,编译时应该会出现相关警告吧

Not all available code size is being used. Recommend running Optimization Assistant to find best speed vs size setting (--opt_for_speed). Double-click to start.

有这么一条
lambo119
3楼-- · 2019-03-24 18:09
 精彩回答 2  元偷偷看……
lidonglei1
4楼-- · 2019-03-24 20:07
CrazyCpu 发表于 2015-11-13 13:42
Not all available code size is being used. Recommend running Optimization Assistant to find best s ...

不像,volatile试了吗?不行最后把n付到寄存器试试
huaiqiao
5楼-- · 2019-03-24 21:43
首先表明下,CCS我没用过。
1. 楼主的第一次的语句中;
1.png
2. 楼主第二次与第三次的语句,无非就是一个是局部变量,一个初始化的时候设置为全局变量,您可以考虑:
a.设置断点后debug;
或者b、volatile int n 这样的定义方式。volatile 是为了防止编译器优化。


luofeng2g
6楼-- · 2019-03-25 02:37
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章