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

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

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

エラーが発生しました。

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

9/22

9.picocalcへのファイル転送(FLASH書き込み)がハングアップしやすいのを対策

picocalのmicropython開発ではファイル転送とかにThonnyというツールを使うんだが、ファイルを uploadするとき頻繁にハングアップする。

FLASHの書き込み中にROMアクセスするとダメなのは経験してるんでドライバのソースをチェック。

2か所ほど怪しいところが見つかった。

1.terminalのカーソルを表示するところで周期timerを使ってる。

2.displayを更新するために core1 で5msスリープして更新するループが動いている。


じゃぁFLASHの書き込みをするときに止めればいいか。

Thonnyの書き込み開始を検出するか、ROMFSのアクセスでFLASH書き込み開始を検出しようか。

と思い、FLASH書き込み処理を調べるとコアを止めたり割り込み禁止したりする処理が既に組み込んである。

え?じゃぁなんで誤動作するの??

とドキュメントをよく読んでいくと core1 の処理内に、特定の関数を呼んでおく必要があるそうだ。

なるほど、早速関数を組み込んでみるか…


static void core1_main(void) {

/()/()m()u()l()t()i()c()o()r()e()_()l()o()c()k()o()u()t()_()v()i()c()t()i()m()_()i()n()i()t()(())();()

//static int frame = 0;

while (1) {

//if (++frame % 100 == 0) {

// printf("Core1 alive: %d\n", frame);

//}


はぁ?わけわかんね。なんでその関数を組み込んであるのに、わざわざコメントつけて無効にしてるの?

なにか理由があったのか?


やめろ!罠だ!

罠でもいい!罠でもいいんだッ!!


ということでコメント解除して試したらいい感じだった。

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

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

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ