硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2425|回复: 5
收起左侧

[FreeRTOS] FREERTOS系统 调用xPortStartScheduler()时进入硬件错误中断

[复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2022-1-24 15:03:42 | 显示全部楼层 |阅读模式
采用STM32CUBEMX生成的Freertos操作系统代码,配置系统时钟是TIM10.发现程序进入硬件错误中断,反复排查后程序在vTaskStartScheduler这个函数中的prvPortStartFirstTask();函数里进入了硬件错误中断。请问这个该怎么解决呢?调整系统控制的中断优先级也没啥用。

在线等!急! 谢谢了
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2022-1-24 15:51:30 | 显示全部楼层
进一步的查找,发现在以下函数中进入硬件错误中断
osStatus_t osDelay (uint32_t ticks) {
  osStatus_t stat;

  if (IS_IRQ()) {
    stat = osErrorISR;
  }
  else {
    stat = osOK;

    if (ticks != 0U) {
      vTaskDelay(ticks);
    }
  }

  return (stat);
}
程序开始运行后,第一次进入StartDefaultTask()函数中的osDelay(1);函数里。程序会连续两次调用vTaskDelay(ticks);第一次调用完vTaskDelay(ticks);的时候,程序没有到return 直接到if,最后第二次到vTaskDelay(ticks);后,在运行就进入硬件错误中断。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2023-8-25 20:05:19 来自手机 | 显示全部楼层
这个找到原因了吗
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2023-8-28 10:36:38 | 显示全部楼层
按理说,cubemx配置的freertos可以无脑运行的。 先看看定时器systic的配置有没有冲突,不要和hal的定时器或者其他自定义定时器搞混了,再看看堆栈配置。
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
发表于 2024-4-16 11:25:07 | 显示全部楼层
老哥你现在有什么解决方法吗?
回复

使用道具 举报

4

主题

19

回帖

31

积分

新手上路

积分
31
发表于 2024-4-16 11:28:14 | 显示全部楼层
老哥找到问题了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 03:11 , Processed in 0.166068 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表