I2Cドライバ仕様修正

I2CドライバもSPI LEDディスプレイドライバと同じように、
I2Cを使用するタスク→I2C API→(キュー)→I2C H/W制御タスク
という構成で書いていたが、以下の問題で挫折。

  1. LEDディスプレイしかつながっていないSPIと違ってI2Cには複数の機器がつながっている
  2. 機器ごとにデータの送り方のパターンが多く、キューの部分で一般化して表現するのが難しい
  3. 何とかできそうなのだと、キューの1エントリがデカい(例:デバイスアドレス+書き込みバッファポインタ・サイズ+読み出しバッファポインタ+サイズ+パラメータ)
  4. 単方向のSPIと違ってデータが戻ってくる可能性がある

こんな問題があるので、単方向のキューだと厳しいと考え、別の方法に。
独立したタスクで実行するんじゃなくて、呼び出し元タスク内で実行されるライブラリの形で実装して実行する。
ハードウェアの問題はセマフォで何とかする。


デットロックしないように気を付けよう…