CubeMX STM32 HAL + FreeRTOS
Posted
技术标签:
【中文标题】CubeMX STM32 HAL + FreeRTOS【英文标题】: 【发布时间】:2017-04-07 19:33:46 【问题描述】:我想检查一下 STM32 Workbench 是否正常工作。
所以,我为我的 F7 Discovery 创建了新项目。我正在使用 HAL 库并且还启用了 FreeRTOS。由于 FreeRTOS 需要一个独立的计时器,我为 HAL 启用了 TIM1,而 SysTick 适用于 FreeRTOS。
不幸的是,在 Workbench 中调试项目时,程序每次都以 TIM1 中断例程结束,一次又一次,但我没有在这里设置任何断点。如果我在调试过程中看到的所有内容都是 TIM1 ISR,我该如何调试我的代码?
【问题讨论】:
添加您的 TIM1 配置代码。 TIM1 配置与1drv.ms/u/s!Ak8yaxR1DeFsnXlNb1Wfz8eJKcG4 中一样,这是由 CubeMX 创建的。 【参考方案1】:据我了解,这是 r0p1 M7 内核的一个特性。 ST 仅授权 r0p1 内核。不确定更新版本或型号的芯片是否会更好。
我在另一个论坛上读到,这或许可以缓解问题:
(DBGMCU)->APB1FZ = 0x7E01BFF;
(DBGMCU)->APB2FZ = 0x70003;
【讨论】:
嘿!我应该将这些行添加到我的代码中,还是它们是 FreeRTOS 端口的一部分? 嗯,是的,您需要找到这些硬件寄存器的地址,并在软件的初始部分(或调试时使用 gdb)设置它们。在 HAL 库中似乎有一些用于设置它们的函数(DBGMCU_APB1PeriphConfig() 和 DBGMCU_APB2PeriphConfig()) 我又遇到了同样的问题,但现在关于 USB。我在哪里可以找到这些寄存器的描述? 尝试搜索此文档:DM00124865(第 40.16.5 节)以上是关于CubeMX STM32 HAL + FreeRTOS的主要内容,如果未能解决你的问题,请参考以下文章