Arduino安全递归调用

作者:乐万德; 刘舟洲; 曹敬馨; 初建杰
来源:实验室研究与探索, 2021, 40(08): 13-18.
DOI:10.19927/j.cnki.syyt.2021.08.004

摘要

针对Arduino支持递归调用及栈溢出隐患问题,设计了安全递归调用算法。在该算法中,每次递归调用前探测剩余内存并记录递归调用的深度,在内存不足以进行下一次递归调用时给出递归调用过深告警及最大递归调用深度提示,并安全返回。以斐波那契数列、汉诺塔等典型的递归调用问题为实验对象,在分析其递归调用栈溢出风险的基础上,采用这种算法在Arduino中进行了安全递归调用验证。针对栈溢出和非溢出典型场景进行测试均可正常工作,验证了安全递归调用算法的有效性和实用性,从而进一步增强Arduino应用潜能。

全文