macOSからPi Picoを使う - その28 [Pi Pico]
ここんとこPi PicoばっかりいじってるせいでCしか書かなくなってる(C++はずっと昔十数年前のことだけど、何度か挑戦したあと挫けた。結局C++は僕には複雑で大きすぎた、ということのようである。Swiftもその気配が忍び寄っている。C++に比べるとObjective-Cは小さくて簡単だった)。継続的に書いてないと他の言語を忘れてしまう。せっかくなんとなくわかりかけてきたSwiftもなんだかもやもやしてきた。つい先日工場に行ったときに昔書いたObjective-Cのコードに手を加えようとしてうろが来た。あれだけ何年も書いてきたObjective-Cでさえ、あれ?なんだっけ?なんてことになってる。ほんの2、3ヶ月のことなのになんということだ。
というわけでlibusbのおさらい。当然これもCで書いてあるんだよなぁ....
というわけでlibusbのおさらい。当然これもCで書いてあるんだよなぁ....
macOSからPi Picoを使う - その26 [Pi Pico]
今、久しぶりに工場に出張している。設備のホストに使っているMac(ほとんどがMac mini)がもう古くてみんなHDDなので、アプリケーションの起動だけでもかなり遅く感じるようになってきた、と現場から言われた。そこでHDDをSSDに換装して少しでもマシにしよう、ということになってその作業を僕がしている。Mid 2011やLate 2012はすごく分解しづらい。終わるとネジがいっぱい余る。とりあえず今週中にMac mini5台をバックアップ取って換装してリストアする。会社を辞めたらMac miniの修理屋でもやろう。ネジを余らせるような修理屋には誰も頼まないか。
ところでlibusbの続き。「macOSから」というタイトルにしてるけど、最近はmacOS固有の問題はほとんどない。看板に偽りあり、と言えばそう。本来ならそんな重箱の隅をつつくような話ではなくて、もっと一般的な記事にしたほうがいい、というのはもっともな意見。でもまあ、僕がヒット数を目指したとしても、きっとどうせ今とほとんど変わらないだろうから、別にいいや。自分が面白いと思うことをやろう。
というわけでlibusbのおさらいを続ける...
ところでlibusbの続き。「macOSから」というタイトルにしてるけど、最近はmacOS固有の問題はほとんどない。看板に偽りあり、と言えばそう。本来ならそんな重箱の隅をつつくような話ではなくて、もっと一般的な記事にしたほうがいい、というのはもっともな意見。でもまあ、僕がヒット数を目指したとしても、きっとどうせ今とほとんど変わらないだろうから、別にいいや。自分が面白いと思うことをやろう。
というわけでlibusbのおさらいを続ける...
macOSからPi Picoを使う - その25 [Pi Pico]
macOSからPi Picoをvendor specific classのデバイスとして接続するため当面libsubを使うことを決めた。本当はIOUSBHostを使いたかったんだけど、使い方を理解するための情報が完全とは言い難い。簡単なサンプルコードひとつあるだけでずいぶん違うはずなんだけど、それは存在しない。
どうもAppleのsample codeって開発者に親切にしよう、分かりやすくしよう、というよりは、新しい機能を開陳するためのものばかりになっているような気がする。古いframeworkはdeprecatedになってそれを使ったsample codeはどんどん削除されるのに、新しいframeworkに対応した、古いものに代わるsample codeはアップされない。
その結果シモジモにわかりやすいsample codeの数はじわじわ減ってる、と言う気がする。最底辺デベロッパへの対応力が余暇+αぐらいのlibusbに比べて、物量的には圧倒しているはずの世界的な超巨大企業Appleがなぜこんなにも劣るのか、というのが僕には全然理解できない。
なぜか、というと簡単には「やる気がない」ということだろうな。気を取り直してlibusbの続き...
どうもAppleのsample codeって開発者に親切にしよう、分かりやすくしよう、というよりは、新しい機能を開陳するためのものばかりになっているような気がする。古いframeworkはdeprecatedになってそれを使ったsample codeはどんどん削除されるのに、新しいframeworkに対応した、古いものに代わるsample codeはアップされない。
その結果シモジモにわかりやすいsample codeの数はじわじわ減ってる、と言う気がする。最底辺デベロッパへの対応力が余暇+αぐらいのlibusbに比べて、物量的には圧倒しているはずの世界的な超巨大企業Appleがなぜこんなにも劣るのか、というのが僕には全然理解できない。
なぜか、というと簡単には「やる気がない」ということだろうな。気を取り直してlibusbの続き...
macOSからPi Picoを使う - その24 [Pi Pico]
macOSからPi Picoを使う - その23 [Pi Pico]
pico-sdkでcmakeがどう使われているかを前回からたどり始めた。cmakeって使ったことなくて(Xcodeひとつとっても使いこなせないうちにどんどんバージョンアップされておいてけぼりになっている)、その上に長い大文字のスネークケース名がどれも同じように見えて間違い探し状態になってしまう。5行読むのにも苦労する....
macOSからPi Picoを使う - その22 [Pi Pico]
前回TinyUSBのトップレベルの記述の仕方を勉強して、pico-sdkのトップレベルのループに組み込めばいいことがわかった。なるほど、みんなベアメタルはみんなこうするのか。
ずっと昔、会社の生産技術の人が9801をホストにして、8kBほどのスタティックメモリを持ったz80の小さなボードにアセンブラで書いてるのを見たことがあった。処理は全部割り込みで書いてる、と言っていた。組み立ての作業机の上で動かすような、PCLを使うほどではない設備はこれが便利だ、と言っていた。30年以上前の話だけど、今僕がやってるのとたいして変わらない、という気がしてきた。
今日からpico-sdkが使っているcmakeがどうなっているか調べることにする....
ずっと昔、会社の生産技術の人が9801をホストにして、8kBほどのスタティックメモリを持ったz80の小さなボードにアセンブラで書いてるのを見たことがあった。処理は全部割り込みで書いてる、と言っていた。組み立ての作業机の上で動かすような、PCLを使うほどではない設備はこれが便利だ、と言っていた。30年以上前の話だけど、今僕がやってるのとたいして変わらない、という気がしてきた。
今日からpico-sdkが使っているcmakeがどうなっているか調べることにする....
macOSからPi Picoを使う - その20 [Pi Pico]
TinyUSBでUSB descriptorをどうやって返すかはわかった。僕みたいな組み込みをやったことのないプログラマはアラインメントなんか気にしたことがなくて、それで効率が良くなるならpaddingとかコンパイラの好きにして、というスタンスが普通だろう。別に違うプラットフォームに移植するつもりがなくても、ビットバイトしたコードは本能的に避ける、というのが身についている。
こういう奇数バイトの構造体を詰め込む、なんていうことは普段気にしたこともない、というかそもそも単一のバイト幅のデータを使うなんてことがまずない(整数データは3、4値しか取らないとわかっていても、最低でも4バイトにしてしまう)ので、ちょっと考え方を変えないといけない。
USB descriptorの話はひと段落として、今日からはvendor specific classをどうやって実装するか...
こういう奇数バイトの構造体を詰め込む、なんていうことは普段気にしたこともない、というかそもそも単一のバイト幅のデータを使うなんてことがまずない(整数データは3、4値しか取らないとわかっていても、最低でも4バイトにしてしまう)ので、ちょっと考え方を変えないといけない。
USB descriptorの話はひと段落として、今日からはvendor specific classをどうやって実装するか...