硬汉嵌入式论坛

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

[FreeRTOS] 关于freeRTOS的建立3个任务后,一直运行在空闲钩子函数中的问题

[复制链接]

4

主题

8

回帖

20

积分

新手上路

积分
20
发表于 2016-3-16 16:55:02 | 显示全部楼层 |阅读模式
各位大侠,我将freeRTOs移植在LPC11C14上(flash 32K,RAM 8K),建立点灯,串口,和一个简单的CAN发送任务,共3个任务,在线仿真时发现串口打印输出未完全输出后就一直在空闲函数中运行,其他任务都不能相互切换。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2016-3-17 09:51:55 | 显示全部楼层
FreeRTOS移植的时候需要通过宏定义实现函数重定向,因为FreeRTOS的port.c文件中的中断函数名跟启动文件中的中断函数名不一致,
通过宏定义重新定义下即可。

看你的问题应该是任务切换没有支持,即类似PendSV的中断没有执行。
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
 楼主| 发表于 2016-3-17 14:03:02 | 显示全部楼层

回 eric2013 的帖子

eric2013:FreeRTOS移植的时候需要通过宏定义实现函数重定向,因为FreeRTOS的port.c文件中的中断函数名跟启动文件中的中断函数名不一致,
通过宏定义重新定义下即可。

看你的问题应该是任务切换没有支持,即类似PendSV的中断没有执行。 (2016-03-17 09:51) 
这个我检查过了,没问题。我的问题是:当CAN那个任务的相关配置函数注释掉后,三个任务就可以,一旦恢复后,就跳到空闲函数里,一直运行空闲函数。纠结了3天了,是不是内存分配问题?
我看了一下,系统freeRTOSconfig.h里面也有设置堆大小的,那个启动文件的一开始也有设置堆和栈大小的,不知道这个两个有什么联系??
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 03:37 , Processed in 0.156105 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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