pub/FrontPage

無線LAN画像伝送評価キット取り扱い説明書

場所×
p.8 1.4APIインターフェースAPI
p.11 2.3動画画像動画
pp.21-22 表Not ApplyNot Applicable
pp.22-23Sample program of C LanguageA sample code in C
p.32用件要件

3.3 SM501デバイスドライバ

SM501のレジスタへのアクセスはioctlシステムコールを, VRAMへのアクセスはLinuxのフレームバッファアーキテクチャの一部を用います。

Linuxフレームバッファアーキテクチャは, Geert Uytterhoeven <geert@linux-m68k.org> によって維持されているアーキテクチャで,最新バージョンは2001年5月10日です。 詳細については,「Appendix-A: Frame Buffer Devices」を参照願います。 (正確を期すため,原文のまま掲示しています。)

3.3.1 SM501レジスタへのアクセス

SM501レジスタへのアクセスにはioctlを用います。 ioctlの使用にはターゲットアーキテクチャのヘッダファイルが必要です。

# cp -R linux/include/asm-sh /usr/local/sh4-linux/include/asm

レジスタ値を読み込み,変更し,書き込むサンプルコードを以下に示します。

int reg32;
int value = 0xab;
int mask = 0x0000ff00;

// open device node
int fd  = open("/dev/fb0", O_RDWR);

// set MMIO address
ioctl(fd, 0, address);

// read register value
ioctl(fd, 1, &reg32);

// change register value
reg32 &= ~mask;
reg32 |= value << 8;

// write register value
ioctl(fd, 2, reg32);

レジスタ値変更の際,予約されているビットを変更しないように注意してください。

3.3.2 SM501 画面解像度設定

画面解像度,ビデオタイミング信号,ドットクロック等は SM501レジスタによって完全に制御されます。 レジスタ値を変更することによって画面解像度を動的に変更することが可能です。 画面解像度設定の際には以下の点に留意願います。

3.3.3 SM501 VRAMへのアクセス

SM501は7つのビデオプレーンを持っています。 本製品で使用するのは,以下の4つのプレーンです。

  1. アルファプレーン
  2. ビデオアルファプレーン
  3. ビデオプレーン
  4. グラフィックプレーン

詳細は添付のデータシートの1-12,1-23章を参照して下さい。

各プレーンにはフレームバッファのデバイスノードを通じてアクセスします。 フレームバッファの詳細はAppendix-Aを参照して下さい。 RGB565モードのグラフィックプレーン(fb0)にカラー画像data[3][w][h]を 描画するサンプルコードを以下に示します。

int xres, yres, size, i, j, idx, r, g, b;
unsigned char *ptr;

int fd  = open("/dev/fb0", O_RDWR);
size = xres * yres * 2;
ptr = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

for (j = 0; j < yres; ++j)
  for (i = 0; i < xres; ++i) {
      idx = (x + i) * 2 + (y + j) * xres * 2;
      r = data[0][j][i] >> 3;
      g = data[1][j][i] >> 2;
      b = data[2][j][i] >> 3;
      *((unsigned short int *)(ptr + idx)) = (r << 11) | (g << 5) | b;
    }
munmap(ptr, size);

以下に,メモリマップとレジスタの設定例を挙げます。 詳細についてはデータシートの1-26から1-28章を参照願います。

違うとこだけ

共通

8004000016203Video Display Control
8008000010001Video Alpha Display Control
8010000010001Alpha Display Control
8020000010001CRT Display Control
90000000022d1Capture Control
8000007013101Panel Display Control

VGA

8020805000500CRT FB Offset/Window Width

SVGA

8020806400640CRT FB Offset/Window Width

XGA

8020808000800CRT FB Offset/Window Width

SXGA


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS