极限零 发表于 2024-5-23 16:30

MicroPython 1.22 程序递归深度限制是多少啊

<p>我写的一段小程序,在某些时候需要深度递归,目前在台式上运行完全没问题,也查看了一下,一共递归了46次,在ESP32S3上就报错啊</p>

<p>RuntimeError: maximum recursion depth exceeded</p>

<p>求大佬,有没有什么办法加大一下限制数啊</p>

dcexpert 发表于 2024-5-23 17:05

<p>递归一般与RAM大小有关,可以试试换个带PSRAM的型号,这样递归深度就大很多了。</p>

wangerxian 发表于 2024-5-23 17:16

<p>你可以写个程序测试一下。这个感觉官方没有说明</p>

hellokitty_bean 发表于 2024-5-23 19:41

<p>递归的过程就是保存现场(入栈)的过程,应该确实与存储空间有关<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/congra.gif" width="48" /></p>

极限零 发表于 2024-5-24 08:52

dcexpert 发表于 2024-5-23 17:05
递归一般与RAM大小有关,可以试试换个带PSRAM的型号,这样递归深度就大很多了。

<p>可能是我每次保存的太多了,我的是8M PSRAM的,对嵌入式应该够大了,可能对我的程序不够大<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/faint.gif" width="48" /></p>

dcexpert 发表于 2024-5-24 09:06

极限零 发表于 2024-5-24 08:52
可能是我每次保存的太多了,我的是8M PSRAM的,对嵌入式应该够大了,可能对我的程序不够大

<p>那只能优化算法,想办法不要一次递归太深,或者分阶段递归。</p>
页: [1]
查看完整版本: MicroPython 1.22 程序递归深度限制是多少啊