分页: 1 / 1

多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 12日 17:30
microlilinze
最近在ESP32上面使用micropython开发,多线程跑,有时候会发现,断电或者重启之后奔溃了,但是可以通过命令行进行操作,uos.listdir()  = [],没有代码文件;上传代码会报错(使用的Thonny idea),只能重新烧固件!不知道有没有大佬遇到过这种问题

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 12日 17:32
shaoziyang
是文件系统损坏了吧?可以试试新版本固件,使用LittleFS V2,可靠性要高不少。

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 15日 09:51
microlilinze
目前固件版本是最新的,使用的是LittleFS V2,但是上周五的时候还是出现了这种情况。

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 15日 11:33
shaoziyang
需要看具体怎样使用的。

线程功能目前一直是测试阶段,可能存在一些问题。可以试试先用 uasyncio。

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 15日 11:35
shaoziyang
STM32是最容易出现这个问题的,在电压不稳时,文件系统损坏后自动初始化,偶尔就会出现这个情况。

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 15日 11:38
microlilinze
shaoziyang 写了:
2020年 6月 15日 11:33
需要看具体怎样使用的。

线程功能目前一直是测试阶段,可能存在一些问题。可以试试先用 uasyncio。


 
我尝试了uasyncio需要手动 await uasyncio.time_sleep()才能切换到其他的协程,就比如两个协程去打印1-10的数字,如果不在每一个协程里面加入await uasyncio.time_sleep(),他就会依次打印两次1-10
 
 

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 15日 11:42
microlilinze
shaoziyang 写了:
2020年 6月 15日 11:35
STM32是最容易出现这个问题的,在电压不稳时,文件系统损坏后自动初始化,偶尔就会出现这个情况。

 
使用最新的固件,应该可以解决这个问题,楼上有提到

Re: 多线程跑ESP32导致代码被清空

发表于 : 2020年 6月 15日 12:11
shaoziyang
感觉很多人会不喜欢协程的