嵌入式加油站 2024-01-05 13:53 采纳率: 0%
浏览 19
已结题

STM32H743+FREERTOS

img


遇到个问题STM32H743的芯片搭配上FREE-RTOS ,用的是正点原子的开发板,为什么这三个子任务中关于灯得部分可以跑起来,我加断点得地方却跑不到,很懵,这是为什么?

  • 写回答

20条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-05 13:54
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    根据你提供的信息,我了解到你的问题是关于在STM32H743芯片上使用FREE-RTOS时,三个子任务中关于灯的部分能够运行,但是在添加断点的地方却无法触发断点,你对此感到困惑。以下是我对此问题的分析和解决方法:

    1. 检查调试环境和设置 首先,请确保你的调试环境和设置是正确的。在使用调试器进行调试之前,你应该先连接好调试器,设置好相应的调试选项,并加载正确的调试信息。你还可以尝试重新连接调试器,重新加载调试配置,并确保已正确选择了芯片型号。

    2. 检查优先级和任务调度 在FreeRTOS中,任务的优先级决定了任务在系统中执行的顺序。优先级较高的任务将在优先级较低的任务之前执行。检查你的任务的优先级设置是否合理,并且确认任务调度器在适当的时候能够切换到你的断点所在的任务。你可以尝试提高断点所在任务的优先级,以确保它能够得到执行。

    3. 检查任务状态和挂起 确认任务的状态是否为就绪状态(Ready),而非挂起状态(Suspended)。如果任务被挂起了,它将不会参与任务调度,也不会被执行。你可以通过添加调试日志或者打印任务状态的方式来检查任务的状态。

    4. 检查延迟和阻塞 如果你在任务中使用了延迟或阻塞函数(如vTaskDelay()等),请确保这些函数的参数设置正确,以保证任务能够按照预期的时间间隔继续执行。另外,还要确保没有其他地方的代码阻塞了任务的执行,造成无法到达断点。

    5. 检查硬件相关问题 如果你的任务涉及到与硬件的交互,比如与灯相关的代码,那么请确保硬件连接正确,并且相应的引脚配置和初始化操作已经正确执行。你可以检查引脚配置是否正确,以及是否有其他代码或中断影响了灯的状态。

    6. 检查编译和链接设置 在有些情况下,编译器可能会优化掉没有被使用或没有产生副作用的代码。如果你的断点所在的代码没有被优化编译进去,那么当你试图触发断点时,可能会无法执行到该位置。在这种情况下,可以尝试调整编译器的优化级别,或者在代码中添加一些能够产生副作用的操作,以确保代码被编译和链接进去。

    希望以上解决方法能够帮助到你解决问题。如果问题仍然存在,请提供更详细的代码和调试信息,以便我能够更准确地找出问题的原因。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月13日
  • 创建了问题 1月5日

悬赏问题

  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 第一行输入n,第二行输入a b c输出的字符向后平移n个位置,当移动到z时,重新返回a开始
  • ¥15 为什么跑这个代码,文件显示不在呀
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求