macOSからPi Picoを使う - その13 [Pi Pico]
ということで、Pi PicoとmacOSをUSBを通して通信するテストアプリを作ってみることにした。Pi Picoはstdio_usbの入出力機能を使って、macOS側はCDCデバイスとしてのデバイスファイル経由でお互い文字列をやり取りする方式でやってみる。特有の制限を回避する必要があって、どうも美しくないけど....
macOSからPi Picoを使う - その12 [Pi Pico]
Pi PicoのC-sdkを使ってGPIO、PWM、ADCなんかをマルチコアで動かすやり方がなんとなくわかってきた。直近ではやりたいことはmacOSをホストにしてPi Picoを経由したハードウェア制御をやりたい。そのための準備...
macOSからPi Picoを使う - その10 [Pi Pico]
最近になってやっとcmakeがちょっとわかった。cmakeでは.oも.aも.soもコンパイル後リンク前のファイルは全部libraryと呼ぶのね。僕はずっと勘違いしてた。.cのソースファイルは全部共通の扱いで、libraryといえば.aとかだとばかり思い込んでいた。そのせいでファイルによってinclude pathが通らなかったりしてた。このせいで長いこと悩んでた。
cmakeのチュートリアルは僕にはなんだか難しすぎて、読んでも全然頭に入らないし。これは英語だからかそれとも僕の頭が悪いのかそれとも書き方が悪いのか。あ、日本語があったんだ。でも英語だから難しかったわけではないみたい。残る可能性はあとふたつ....
cmakeのチュートリアルは僕にはなんだか難しすぎて、読んでも全然頭に入らないし。これは英語だからかそれとも僕の頭が悪いのかそれとも書き方が悪いのか。あ、日本語があったんだ。でも英語だから難しかったわけではないみたい。残る可能性はあとふたつ....
macOSからPi Picoを使う - その9 [Pi Pico]
Pi Pico関連の記事が増えて本家Raspberry Piとは話の要点とするところが違ってしまったのでPi Picoの「マイカテゴリ」を作った。「Pi Picoカテゴリ」はハードウェア制御の話が中心で、たぶん本家「Raspberry Piカテゴリ」はunixとその周辺の話題(例えばMathematica on Raspberry Piとか)になる。まあ、半分ボケたジジイのすることなのであっという間に忘れてごちゃごちゃになるような気もするけど。
ところで「マイカテゴリ」はフラットで階層化できないので、どんどん長くなってしまう。まあ、カテゴリ分けはせいぜい古い記事を参照するときの分類用にしか使えなくて、僕の他にはあまり役に立たないかも。
まあそれはいいとして、前回まででマルチコアの起動の仕方と排他制御用のモジュールを見てきた。なんとなくわかったけど、普通の仮想記憶を持ったOSみたいにthread poolが用意されてコアを意識しなくてもプログラムできて効率よく実行される、というふうにはPi Picoではならない。プログラムはコアに縛られるので、それを頭に入れておく必要がある....
ところで「マイカテゴリ」はフラットで階層化できないので、どんどん長くなってしまう。まあ、カテゴリ分けはせいぜい古い記事を参照するときの分類用にしか使えなくて、僕の他にはあまり役に立たないかも。
まあそれはいいとして、前回まででマルチコアの起動の仕方と排他制御用のモジュールを見てきた。なんとなくわかったけど、普通の仮想記憶を持ったOSみたいにthread poolが用意されてコアを意識しなくてもプログラムできて効率よく実行される、というふうにはPi Picoではならない。プログラムはコアに縛られるので、それを頭に入れておく必要がある....
macOSからPi Picoを使う - その8 [Pi Pico]
それほど難しくないのでどんどん行きたい。前回のRP2040のSIOにあるハードウェアFIFOはコア間のpipeとして使える。しかしあまり大きなデータを送ることはできない。ソフトウェアでqueueがあるとそう言う場合に助かる....
macOSからPi Picoを使う - その7 [Pi Pico]
Pi PicoをいじっていてとりあえずmacOSでコンパイルできるようになって(そのままVisual Studio Codeが使えるようにできるけど僕はエディタとしては無理矢理Xcodeを使ってる)、USB経由でBOOTSELモードでリセットできて、GPIO、ADCとPWMの使い方がわかって、flashストレージをノンボラメモリとして使えることがわかった。
次にやっつけないといけないのは、ふたつめのコアを効率よく動かすこと....
次にやっつけないといけないのは、ふたつめのコアを効率よく動かすこと....