如果使用了操作系统,比如uCOS,创建了几个task,其中有很多函数只是单个task中使用的,那这些函数是否需要定义为reentrant?比如:
func1(), func2, func3(),只在task1中才调用,其他task不会直接调用。
假如func1在task1中正在运行,可能会被中断(timer,硬件中断)打断,转而调用其他的代码。但是func1始终是一份在跑,所以不用定义为reentrant。
定义为重入函数的好处是安全,防止万一这个函数被其他的task调用;减少硬件堆栈的使用;
坏处:运行时间增加;RAM空间增加。
是这样吗? |