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をどうやって実装するか...
macOSからPi Picoを使う - その19 [Pi Pico]
TinyUSBがUSBのdescriptorをどう扱うかをサクッと見た。こうやって見てくると、ようするにUSBの規格をそのままstructとして実装した、というだけのようである。まあ当たり前かもしれないけど、それならそれでもう少しdecsriptorを書く手間を省いてくれるような工夫をしてくれてもいいような気がする。しかしdescriptorを書き慣れた人にはかえってそういうのがウザいのかもしれない...
macOSからPi Picoを使う - その18 [Pi Pico]
TinyUSBを読んでいる。前回はUSBのdevice descriptorをTinyUSBではどう扱っているかをみた。基本的にはUSBの規格に準拠した単なる構造体として定義されて、それをコールバックで返すようになっている。今日は残りのdescriptorを見てみる....
macOSからPi Picoを使う - その17 [Pi Pico]
前回tusb.hを読んでみて、必要なUSB classのヘッダしか読み込まれないし、不要なclass用のコードはリンクされなくて、その呼び出しは関数ポインタを並べた構造体を経由して行われることがわかった。ちょっと遠回りのような気もするけど、なるべくコードサイズを抑えるための配慮だと思われる。組み込みではこうするのが普通なのかな。そのへんはよくわからない。
今日はUSB descriptorをTinyUSBではどう扱うかを見ていく....
今日はUSB descriptorをTinyUSBではどう扱うかを見ていく....
macOSからPi Picoを使う - その16 [Pi Pico]
macOSからPi Picoを使う - その15 [Pi Pico]
急遽、TinyUSBを真面目にみることにした。前回はとりあえずソースディレクトリのトップレベルがどうなってるか見た。ディレクトリ構造は浅くて、サブディレクトリを持つのはUSBのデバイスクラス別の記述だけのようなので、それほど悩むことはなさそうに思える。今日は残りの部分を見てみる....
macOSからPi Picoを使う - その14 [Pi Pico]
と、ここまで書いたんだけど、書いてしまってからなんだかすごくダサい気がしてきた。典型的なWorkaroundで、しかし一旦これを使い始めると結局そのままになって、そしてある日突然互換性の問題で動かなかくなってあたふたと慌てる、というのが目に見えている。おお、僕には未来が見える、自分のやることに関してだけは。
どうせならやっぱりvendor specificなクラスでやろう、と思いなおした....
どうせならやっぱりvendor specificなクラスでやろう、と思いなおした....