打印

请教C51中reentrant重入函数的几个问题

[复制链接]
4354|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hi21ic|  楼主 | 2012-2-10 20:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果使用了操作系统,比如uCOS,创建了几个task,其中有很多函数只是单个task中使用的,那这些函数是否需要定义为reentrant?比如:
func1(), func2, func3(),只在task1中才调用,其他task不会直接调用。

假如func1在task1中正在运行,可能会被中断(timer,硬件中断)打断,转而调用其他的代码。但是func1始终是一份在跑,所以不用定义为reentrant。
定义为重入函数的好处是安全,防止万一这个函数被其他的task调用;减少硬件堆栈的使用;
坏处:运行时间增加;RAM空间增加。

是这样吗?

相关帖子

沙发
ayb_ice| | 2012-2-11 08:22 | 只看该作者
最好加上
另外51就别折腾UCOS了,飞机变摩托

使用特权

评论回复
板凳
hi21ic|  楼主 | 2012-2-11 10:02 | 只看该作者
谢谢你的建议。那就是说,原理上是不用加。只是为了保险才加?
系统倒是对时间效率要求不是很严格,倒是为了写和维护起来方便。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

16

帖子

0

粉丝