表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
30/61

閑話 Thonny の最新版(4.1.7)でハングアップするのを回避する方法

ROMFSへの書き込み中にハングアップする現象は対策できているけれど、thonnyで再起動要求したとき、全く書き込めない現象はたまに起きる。

なんで?リセットしてるんじゃないの?


どうやら soft reset では micropython の管理してるメモリだけをリセットしてるんで、ハードウェアとかドライバの初期値あり変数は初期化しない仕様みたいだ。

でも、あまり関係しないと思うんだがなぁ。


もしかしてthonny のバージョンが古いせいか?と思ってチェックしたら 3.3.3 だった。最新は4.1.7。こりゃ古すぎる。なんでこれが入ってるんだっけ?


とりあえず最新版を入れちゃえ!と入れてみたら、現象が悪化した。再起動要求を出すと thonny の backend がハングアップする。

画面の右下のインタプリタ設定で選びなおして USB 接続しなおせばマトモにつながるようになるから何とか使えるけれど、なんだかな。


ログメッセージから考えると、micropython 側との通信に問題が起きてるっぽいんだよな。

もしかして picocalc 側から余計なデータを送信してるせいか?

と思って boot.py から os.dupterm(pc_terminal) 部分をコメントアウトしたら正常に使えるようになった。

謎すぎる。

ちなみにdupterm をコメントにすると、USBデバッガをつながないと操作できなくなる罠。


ぐぐったら USB デバッグ中かどうかの判定方法があった。

なので、boot.py に下記を追加して回避。


import machine


SIE_STATUS_REG = 0x50110000 + 0x50

SIE_CONNECTED = 1 << 16

SIE_SUSPENDED = 1 << 4

usbConnected = (machine.mem32[SIE_STATUS_REG] & (SIE_CONNECTED | SIE_SUSPENDED)) == SIE_CONNECTED


if not usbConnected:

os.dupterm(pc_terminal)



でもリセット後にROMFSに書き込めない現象は再発したので、真の解決にはなってないのです。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ