硬汉嵌入式论坛

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

[FreeRTOS] FreeRTOS的API设计不如ucos

[复制链接]

6

主题

231

回帖

249

积分

高级会员

积分
249
发表于 2017-8-7 11:37:35 | 显示全部楼层 |阅读模式
FreeRTOS有一族xxFromISR的函数,把普通功能请求和ISR中使用的功能分开,这样的设计很不方便。
不如UCOS的OSIntEnter/OSIntExit好用。
例如有一种资源,能够被ISR和线程访问,那么问题来了,保护那种资源的互斥机制会被xxFromISR和不带ISR的函数版本所困扰。
void ThreadProc(void)
{
AccessResource(void);
}

void ISR(void)
{
AccessResource(void);
}

void AccessResource(void)
{
MutexTakeFromISR or MutexTake?
}
这种不同版本函数的设计模式对于模块化,对象化设计程序是很不方便的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2017-8-7 11:42:11 | 显示全部楼层
这种情况,你的函数AccessResource(void)必须本身就支持重入。

另外uCOS的方式也保护不了,特别注意,uCOS的OSIntEnter/OSIntExit仅仅是做了一个进出中断的嵌套层数计数和退出时是否做任务切换,并没有函数保护功能。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 00:47 , Processed in 0.148137 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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