【问题标题】:CubeMX STM32 HAL + FreeRTOSCubeMX STM32 HAL + FreeRTOS
【发布时间】:2017-04-07 19:33:46
【问题描述】:

我想检查一下 STM32 Workbench 是否正常工作。

所以,我为我的 F7 Discovery 创建了新项目。我正在使用 HAL 库并且还启用了 FreeRTOS。由于 FreeRTOS 需要一个独立的计时器,我为 HAL 启用了 TIM1,而 SysTick 适用于 FreeRTOS。

不幸的是,在 Workbench 中调试项目时,程序每次都以 TIM1 中断例程结束,一次又一次,但我没有在这里设置任何断点。如果我在调试过程中看到的所有内容都是 TIM1 ISR,我该如何调试我的代码?

【问题讨论】:

标签: eclipse stm32 freertos hal


【解决方案1】:

据我了解,这是 r0p1 M7 内核的一个特性。 ST 仅授权 r0p1 内核。不确定更新版本或型号的芯片是否会更好。

我在另一个论坛上读到,这或许可以缓解问题:

  (DBGMCU)->APB1FZ = 0x7E01BFF;
  (DBGMCU)->APB2FZ = 0x70003;

【讨论】:

  • 嘿!我应该将这些行添加到我的代码中,还是它们是 FreeRTOS 端口的一部分?
  • 嗯,是的,您需要找到这些硬件寄存器的地址,并在软件的初始部分(或调试时使用 gdb)设置它们。在 HAL 库中似乎有一些用于设置它们的函数(DBGMCU_APB1PeriphConfig() 和 DBGMCU_APB2PeriphConfig())
  • 我又遇到了同样的问题,但现在关于 USB。我在哪里可以找到这些寄存器的描述?
  • 尝试搜索此文档:DM00124865(第 40.16.5 节)
猜你喜欢
  • 2019-06-03
  • 2019-09-20
  • 2019-02-26
  • 2018-07-14
  • 2015-09-24
  • 2016-10-03
  • 2016-03-07
  • 2018-08-26
  • 2021-08-27
相关资源
最近更新 更多