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

ESP32、ESP8266
ESP32-S2、ESP32-S3、ESP32-C3
回复
microlilinze
帖子: 4
注册时间: 2020年 6月 11日 16:06

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

#1

帖子 microlilinze »

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

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

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

#2

帖子 shaoziyang »

是文件系统损坏了吧?可以试试新版本固件,使用LittleFS V2,可靠性要高不少。

microlilinze
帖子: 4
注册时间: 2020年 6月 11日 16:06

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

#3

帖子 microlilinze »

目前固件版本是最新的,使用的是LittleFS V2,但是上周五的时候还是出现了这种情况。

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

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

#4

帖子 shaoziyang »

需要看具体怎样使用的。

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

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

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

#5

帖子 shaoziyang »

STM32是最容易出现这个问题的,在电压不稳时,文件系统损坏后自动初始化,偶尔就会出现这个情况。

microlilinze
帖子: 4
注册时间: 2020年 6月 11日 16:06

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

#6

帖子 microlilinze »

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

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


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

microlilinze
帖子: 4
注册时间: 2020年 6月 11日 16:06

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

#7

帖子 microlilinze »

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

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

头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

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

#8

帖子 shaoziyang »

感觉很多人会不喜欢协程的

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章