|
GadgetSeed
0.9.6
|
GadgetSeedは標準化されたデバイスドライバAPIとデバイスドライバ構造体が定義されています。
これらは device.h で定義されています。
デバイスドライバ構造体は以下の構造体で定義されています。
st_device デバイスドライバ構造体
GadgetSeedでアプリケーションがIOをアクセスするにはデバイスドライバを経由することを推奨します。
GadgetSeedでデバイスドライバを開発することは device データとそのメソッドを作成することになります。
ユーザがデバイスにアクセスするためのAPIとして、以下のAPIがあります。
include ファイル : device.h
| API名 | 機能 |
|---|---|
| open_device() | デバイスをオープンする |
| close_device() | デバイスをクローズする |
| lock_device() | デバイスをロックする |
| unlock_device() | デバイスをアンロックする |
| read_device() | デバイスよりデータを読み出す |
| block_read_device() | デバイスよりブロックデータを読み出す |
| getc_device() | デバイスよりデータを1バイト読み出す |
| write_device() | デバイスにデータを書き込む |
| block_write_device() | デバイスにブロックデータを書き込む |
| putc_device() | デバイスにデータを1バイト書き込む |
| ioctl_device() | デバイスを制御する |
| seek_device() | デバイスのアクセスポイントを設定する |
| sync_device() | デバイスの書き込みデータの同期をとる |
| select_device() | デバイスのアクセス準備完了を待つ |
GadgetSeedでは以下のデバイスタイプが定義されています。 また、各デバイスタイプで実装すべき ioctl コマンドが規定されています。 ioctl コマンドは各デバイスタイプ用の include ファイルに定義されています。
| デバイスタイプ | 説明 | includeファイル |
|---|---|---|
| タイマ | 汎用タイマデバイス | timer_ioctl.h |
| UART | シリアル通信デバイス | uart_ioctl.h |
| RTC時計 | リアルタイムクロックデバイス | rtc_ioctl.h |
| I2Cマスター | I2Cマスターコントローラデバイス | i2c_ioctl.h |
| SPIマスター | SPIマスターコントローラデバイス | spi_ioctl.h |
| ストレージ | SD、MMC等のストレージデバイス | sd_ioctl.h |
| ビデオ出力 | LCD等の画像表示デバイス | video_ioctl.h |
| ビデオIO | 画像表示デバイス制御用IO | vio_ioctl.h |
| 圧電ブザー | 圧電ブザー等のサウンダデバイス | buzzer_ioctl.h |
| 外部割り込み(IRQ) | 外部割り込み端子 | irq_ioctl.h |
| Etherデバイス | Etherデバイス | ether_ioctl.h |
| GPIO | GPIOデバイス | gpio_ioctl.h |
| AUDIO | AUDIOデバイス | audio_ioctl.h |
| タッチセンサ | タッチセンサデバイス | ts_ioctl.h |
| 環境センサ | 温度センサ、湿度センサ、気圧センサ等 | envsnsr_ioctl.h |