• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

ADS调试程序出现诡异问题

我是爆米花啊 2017-10-26 浏览量:803
12345.jpg

如上图,程序卡死在右侧那个 while循环。但是看寄存器里的值(左侧红框里的值)明明满足跳出循环的条件了。就一直在这个地方等待。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 有些变量的定义,特别是在ISR中用到的,是要加volatile,否则编译器大了优化等级,就有可能出问题。
    • 发布于 2017-10-26
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 操作的时候,用结构体指针作为传递参数试试
    • 发布于2017-10-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 333333.jpg
    123456.jpg

    自己解决了。。。看了下这段代码的反汇编之后在那个参数定义的时候加了个 volatile修饰一下。

    不加volatile之前的反汇编代码(第一张图)如下

    000109e4    ldrb r0,[r1,#0]

    000109e8     cmp r0,#0x55

    000109ec     bne 0x109e8

    加volatile之后的反汇编代码(第二张图)如下

    000109e4    ldrb r0,[r1,#0]

    000109e8     cmp r0,#0x55

    000109ec     bne 0x109e4

    • 发布于2017-10-26
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :T4G是卷装,数量800;不带T4G的是管装,数量50 回复

相关问题

问题达人换一批

ADS调试程序出现诡异问题