硬汉嵌入式论坛

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

[FreeRTOS] 发觉FreeRTOS的设计思路有问题

[复制链接]

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2017-4-4 21:41:20 | 显示全部楼层 |阅读模式
因为FreeRTOS的同步对象操作分为普通版本和FromISR版本,在实际使用中发觉很不方便。

例如写一个调试信息输出函数,可以在线程中使用也可以在中断中使用,在这个函数内部就难以分清楚调用是来自ISR还是线程。
void OutputDebugString(cont char* s)
{
xSemaphoreTake(xxxx); // OR xSemaphoreTakeFromISR?
UartWrite(...);
xSemaphoreGive(xxx); // OR xSemaphoreGiveFromISR?
}
再想一想,其他的RTOS都没有分FromISR版本和普通版本的,只有FreeRTOS有,觉得很有问题。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107462
QQ
发表于 2017-4-5 00:32:58 | 显示全部楼层
不同的处理策略而已,FreeRTOS和RTX都是区分开的的,而uCOS是没有区分的,没区分怎么办,那也得想办法区分开,uCOS的解决办法就是进出中断的时候
调用函数OSIntEnter(); 和 OSIntExit();
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-2 09:38 , Processed in 0.147467 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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