700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > raspberry pi Pico使用MicroPython变砖后的解决方法

raspberry pi Pico使用MicroPython变砖后的解决方法

时间:2019-02-23 19:55:56

相关推荐

raspberry pi Pico使用MicroPython变砖后的解决方法

使用raspberry pi Pico的原因

在硬件产品(单片机)的开发中我们往往需要借助一些额外的仪器/设备进行产品的辅助测试, 假设我们需要一个IO+ADC类型辅助设备, 以往的做法是原理图->PCB->程序, 而现在随着开源硬件的流行很多时候我们没有必要在重复造轮子。 arduino,raspberry pi,micro:bit,raspberry pi Pico等都是不错误的选择。其中raspberry pi Pico是后来者,并且支持C 和 MicroPython编程,入门比较简单,单片机开发者可以无门槛上手,几乎没有学习成本。

问题来了

我使用的是MicroPython开发方式,客户端工具使用Thonny。

当我不小心写了一个错误的python程序并且将其下载到Pico运行的时候。

错误的程序如图:

会出现以下问题:

WARNING:root:Unexpected echo. Expected b'%Run -c $EDITOR_CONTENT\r\n', got b'TypeError: function takes'

Connection lost (EOF)

Use Stop/Restart to reconnect.

如图:

解决方法

python是解释形语言,我们下载进去的程序其实仅仅是一个文本文件。python仅在运行且运行到该错误行时才会报错。

一些修复尝试

按照我的理解如果用户程序错误,不应该也不至于造成整个系统的瘫痪。 然而上述这个错误我尝试了很多办法都无法解决, 包括重新下载MicroPython的.uf2文件

强制擦除MCU的Flash

于是我想起了j-link,因为raspberry pi Pico本身就是一个Cortex-M0内核的单片机,

注意选择的是M0_0内核, 因为Pico有2个核。

如图:

或者直接点击快捷键 [F4]

擦除成功

重新连接 Pico,提示更新MicroPython固件(因为刚才擦除了flash),点击更新

至此,Pico满血复活

总结

因为Pico我也是刚接触,不确定是否是固件bug,可能还有其他更好的解决方案。以上方法并不是一个非常好的解决方案,因为并不是所有人都有j-link的。

友情提醒

在Thonny的编辑中,我们是可以[F5]先试运行程序的。即使程序有问题因为并没有保存到MCU中,所以并不会造成如上的变砖问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。