FC2カウンター FPGAの部屋 ZedBoard Linux のフレームバッファにカメラ画像を表示13(未完成)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZedBoard Linux のフレームバッファにカメラ画像を表示13(未完成)

前回、カメラ画像を表示するソフトウェアを追加したLinuxイメージをSDカードに追加して、電源ONでLinuxがブートし、カメラ画像を自動的に表示することが出来た。だが実は、それにはバグが有った。
GPIOの出力を1にして、Camera Controller と Bitmap Display Controller のリセットを解除して動作させたところ、Linuxコンソールの表示がおかしくなってしまった事があった。この時は、フレームバッファのアドレスを何らかの原因で自作のカメラ表示回路が間違ったのか?と思っていた。でも、”ZedBoard Linux のフレームバッファにカメラ画像を表示8(カメラ画像表示成功)”で、ChipScope Pro で解析してみたが、きちんと0x1AXXXXXX 番地をアクセスしていた。本来は動作に問題ないはずがバグってしまった。現在のSDカードでカメラ表示回路を生かしている状態でも、確率的に動作する状態と、Linuxが死んでしまう状態になってしまうことがわかった。10回、電源ON時にLinuxが死んでしまうかどうか?を調査した。それを下に示す。X がLinuxが死んでしまう状態になった時、O が正常な状態の時を示す。

XXOOOXXOOO


上の場合は、2/5 の確率でLinux が死んでしまう。たぶん、Linux のフレームバッファはkmalloc() などでアロケートされるのだと思う。それがたまたま0x1A000000 スタートになっただけなのだと思う。条件が違えば、異なるアドレスになると考えられる。元の回路では、AXI VDMAのフレームバッファのアドレスはソフトウェアで変更ができるので、フレームバッファのアドレスを固定する必要はない。Linuxカーネルでフレームバッファを固定アドレスに割り振っていないと考えられる。

次に、フレームバッファにARMプロセッサから黒のカーソルが書かれているようだ。
HDMI画面を見ると、下のように黒いカーソルが見える。(ピンクの矢印の部分)
ZedBoard_Linux_96_130218.jpg

これは点滅していて、時々書かれているようなのだ。この影響は、VGA画面に3本の筋となって現れる。
ZedBoard_Linux_97_130218.jpg

ある一定時間経つと、黒のカーソルがブリンクするのは停止する。VGA画面の3本の線も無くなった。

これらのことから、やはりLinuxカーネルを自分でビルドして、固定アドレスのフレームバッファ領域を確保する必要がありそうだ。
これからLinuxカーネルビルドして、固定アドレスのフレームバッファ領域を確保してみようか?と思っている。何分にもソフトウェアはよくわからないので、だいぶ迷うかもしれない。その際は、よろしくお願いします。

現在使用しているWindows XP 32ビット版にもメモリなどの限界を感じているので、この機会にWindows 7 64ビット版に乗り換える予定です。入れ替え作業をしますので、ブログが書けない可能性が大です。
  1. 2013年02月18日 04:01 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2390-62472211
この記事にトラックバックする(FC2ブログユーザー)