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中,所以并不会造成如上的变砖问题。
raspberry pi Pico使用MicroPython变砖后的解决方法的更多相关文章
- 在 raspberry pi pico 上体验 MicroPython
raspberry pi pico 官方提供 2 种开发方式,其中一种是使用 python3 开发,树莓派提供了 MicroPython 固件,把这个固件烧录进去,就可以 在 pico 上跑 pyth ...
- 上手 Raspberry Pi Pico
什么是 PICO Raspberry Pi Pico 是树莓派推出的一块基于 Arm Cortex-M0+ 内核的 MCU 的开发板,使用的 MCU 是树莓派自己研发的 Arm Cortex-M0+ ...
- openwrt 路由器变砖后修复方法
https://wiki.openwrt.org/doc/howto/generic.debrick 变砖后需根据类型进行修复,主要有以下四种: (1)if only something on the ...
- 1970年// iPhone “变砖”后可继续正常使用的解决方案
0.解决方案 说话先说重点,“变砖”后的iphone怎么正常使用. 拆开后盖,给电源和处理器之间断下电就OK了. 1.事件来源 对于iPhone和iPad,把时间手动设置到1970年5月以前会出现“变 ...
- vi命令【方向键】变字母键的解决方法
vi命令[方向键]变字母键的解决方法 最近在SSH下玩Debian发现了一个有趣的现象,就是在一些个别版本的Debian镜像下,使用vi命令时会出现键盘输出出错的现象,使用方向键时会变成C,D等字 ...
- 误把Linux运行级别设置为6后的解决方法【转】
本文转载自:http://www.wuji8.com/meta/841011126.html 误把Linux运行级别设置为6后的解决方法 我们知道,Linux有7个运行级别,而运行级别设置为6 ...
- [RN] Android 设备adb连接后unauthorized解决方法
Android 设备adb连接后unauthorized解决方法 安卓设备usb或者adbwireless连接后输入adb device后都是未授权状态 相信很多同学都会遇到这种情况,除了一直重复开关 ...
- Android 动画 setVisibility 后出错解决方法
===先说明下背景. 写的是个ListView 设置 adapter,并在列表末尾显示加载更多,点击 加载更多 时, 变成一个 圆环形的加载动画和 正在加载. 说明下,这个 加载动画是自己做得,一个圆 ...
- hanlp在Python环境中的安装失败后的解决方法
Hanlp是由一系列模型与算法组成的javag工具包,目标是普及自然语言处理再生环境中的应用.有很多人在安装hanlp的时候会遇到安装失败的情况,下面就是某大神的分享的在python环境中安装失败的解 ...
- 【海淘域名】GoDaddy账户被锁定后的解决方法
转载自[美国海淘网]http://www.usahaitao.com/Experience/Detail_2886.html 通过ICANN申诉顺利的从国内无良奸商(35互联与商务中国,小编的域名 ...
随机推荐
- linux 字符集与编码格式相关
字符集:多个字符的集合. # 书写系统字母与符号的集合. 字符编码:把 字符集 中的字符 编码为(映射)指定集合中的某一对象. # 以便文本在计算机中存储和通过通信网络的传递 查看文件的的编码格式 ...
- 可托拉拽的WPF选项卡控件,强大好用!
推荐一个简单易用的WPF选项卡控件. 项目简介 这是一个基于WPF开发的,可扩展.高度可定制.轻量级的UI组件,支持拖拉拽功能,可以让开发人员快速实现需要选项卡窗口的系统. 特色功能 1.拖拉拽标签: ...
- Linux系统安装CH341驱动
Linux系统安装CH341驱动 Linux系统(这里以ubuntu20.04为例)本身会自动安装CH340驱动,随着时间的推移,旧版本的驱动已经无法支持当下的CH340模块,所以我们需要重新安装驱动 ...
- opencv中的函数
读入图像:cv2.imread(),第一个参数:未文件路径,第二个参数:告诉函数要以何种方式读取图片. cv2.IMREAD_COLOR:读入一幅彩色图像.图像的透明度会被忽略. cv2.IMREAD ...
- 从浏览器架构认识BOM和DOM
浏览器架构 JavaScript运行在浏览器,BOM就是连接JavaScript代码和浏览器的桥梁,而DOM就是用来操作各种标签元素的. BOM包括 window.history.location.d ...
- maven系列:基本命令(创建类、构建打包类、IDEA中操作)
目录 一.创建类命令 创建普通Maven项目 创建Web Maven项目 发布第三方Jar到本地库中 二.构建打包类命令 编译源代码 编译测试代码 编译测试代码 打包项目 清除打包的项目 清除历史打包 ...
- Web通用漏洞--RCE
Web通用漏洞--RCE 漏洞简介 RCE远程代码/命令执行漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. RCE漏洞也分为代码执行漏洞和命令执行漏洞,所谓代码执行 ...
- 如何利用AI智能聊天机器人10秒钟做出一个故事绘本的神奇插件
原文链接:如何利用AI智能聊天机器人10秒钟做出一个故事绘本的神奇插件 ChatGPT以下称为AI智能聊天机器人 一.AI智能聊天机器人4中集成"Stories"插件 对于已经熟悉 ...
- 《Kali渗透基础》12. 无线渗透(二)
@ 目录 1:无线协议栈 1.1:ifconfig 1.2:iwconfig 1.3:iw 1.4:iwlist 2:无线网卡配置 2.1:查看无线网卡 2.2:查看信道频率 2.3:扫描附近 AP ...
- 解决Eclipse中启动Tomcat报unable to start within 45 seconds问题
启动项目的时候报Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. If the server ...