【问题标题】:STM32L-Discovery step-by-step debuggingSTM32L-Discovery分步调试
【发布时间】:2015-12-05 23:09:47
【问题描述】:

我在板载 STM32L152RBT6 和 CoIDE 中使用 STM32L-Discovery。我创建了新项目,选择了 STM32L152RBT6 微控制器并添加了以下组件:

  • C_library
  • cmsis_core(据我所知包含引导)
  • STM32L152xB_CUBELIB

现在我正在尝试对这个非常简单的代码进行逐步调试:

int main(void)
{
    int var1 = 1;
    int var2 = 2;

    while(1)
    {
        var1 = var1+1;
        var2 = var2*var1; // breakpoint here
    }
}

它会编译、加载,但在逐步调试时,编译器会省略代码行。当从一个断点运行到另一个断点时,程序表现得非常疯狂,var1 和 var2 的值似乎是随机的。 编译器工具链:GNU Tools ARM Embedded 4.9 2015q2

我有另一块带有 STM32F4xx uC 的板,它工作正常。 嘿,社区,你有什么想法吗?

【问题讨论】:

  • 看起来你选择了错误的 MCU 并且 init 不能正常工作

标签: debugging initialization stm32 discovery coocox


【解决方案1】:

抱歉,我的声誉不足以对问题发表评论,因此,帮助您的唯一方法是在答案框中写下我的回复,尽管我完全清楚这可能不是一个完整的答案。

这种行为可能有多种原因。不幸的是,您的问题中没有太多细节让我给您一个直接的答案。 错误的微选择将是我的第一个猜测。 STM32L152RBT6 是 Cortex M3,您可能正在尝试将针对 M4 编译的程序加载到 M3 系列设备。如果你这样做了,微初始化将是错误的,并可能导致一些未定义的行为。

在这两种情况下您使用的调试器是什么?在发现板的情况下,我会自动假设您使用的是内置的 STLink。另一块有 M4 系列微的主板呢?

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多