質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

3652閲覧

フレームバッファについて

shuppi

総合スコア47

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2016/10/03 05:45

編集2016/10/03 08:59

Armadillo-800-EVAを使っています。
画面をBMP形式で保存がうまくいかないので、フレームバッファとか使ったらと言われ、作ってみたのですが、よくわかりません。

関係ありそうなのを引っこ抜いてきました。

↓ここらへんが使えそうだなと思ってます。

C

1#define FBDEV_FILE "/dev/fb0" 2 3// フレームバッファをオープンします。 4// オープンに失敗した場合はエラーで終了します。 5if ((fd = open(FBDEV_FILE, O_RDWR)) < 0) { 6 perror("open(fb)"); 7 return 1; 8}

C

1// mmapによりバッファの先頭アドレスを取得します。 2pfb3 = mmap(0, SCREENSIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); 3// 取得に失敗した場合はエラーで終了します。 4if (pfb3 == MAP_FAILED){ 5 perror("mmap"); 6 return 1; 7}

C

1#define SCREENWIDTH 800 2#define SCREENHEIGHT 480 3#define BYTES_PER_PIXCEL 4 4#define SCREENSIZE (SCREENWIDTH * SCREENHEIGHT * BYTES_PER_PIXCEL) 5 6//画面を白で初期化します。 7memset(pfb3, 0xff, SCREENSIZE);

自分はmemsetを変えればいけると思ってました。
でも、これ初期化なんで

画面のバッファを保存して、呼び出したいのですがどうしたらいいでしょうか?
できればプログラムで教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Raspberrypiですが、Linuxなので参考になると思います。
リンクはフレームバッファでの表示ですが、write()をread()に置き換えて考えれば保存もできそうです。
[rpi]画面に何か出してみよう (1)
[rpi]画面に何か出してみよう (2)

投稿2016/10/03 14:50

TaroToyotomi

総合スコア1430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問