前回は、Linuxを起動しない状態で、カメラ表示回路でカメラ(MT9D111)のレジスタを設定して、VGA出力にカメラ画像を表示することが出来た。
今回は、SDK14.4を使用して、パソコンのWindows 上のSDK14.4から、ZedBoardのLinuxにリモートデバックを行う。
参考文献は、”
Zynq-7000 EPP コンセプト、ツール、テ クニック ガイド 効率的なエンベデッド システム構築をサポートするハンディガイド UG873 (v14.2) 2012 年 7 月 27 日”の44ページ、”5.2.4 テストドライブ : SDK リモートデバッグを使用して Linux アプリケーションをデバッグする”。
それと、ZC702ボードのリモートデバック方法を参照のこと。
Zynq-7000(ZC702)のLinuxチュートリアル3(リモートデバック)Zynq-7000(ZC702)のLinuxチュートリアル4(リモートデバック2) Zynq-7000(ZC702)のLinuxでMIOに接続されているLEDを制御 Zynq-7000(ZC702)のLinuxでMIOに接続されているLEDを制御2 すでにSDカードには、カメラ表示回路の入ったビットストリームをBOOT.bin に入れてある。BOOT.bin の作り方は、”
カメラの表示回路及びソフトウェアをSDカードからブートする”を参照のこと。cam_disp2.elf の代わりに、ZedBoard_OOB_Design\boot_image\u-boot.elf を入れて、BOOT.bin を作製した。
・ZedBoardにSDカードを入れて、電源を入れてLinuxをブートした。
・ ifconfig eth0 192.168.3.130 netmask 255.255.255.0 を入力して、ZedBoardのIPアドレスを設定した。(家のプライベートIPです)

・SDKのFileメニューから New -> Application Project を選択した。

・New Project ダイアログで、Project Name に cam_disp3_linux と入力し、Target Software の OS Platform のプルダウンメニューから linux を選択した。Next -> をクリックした。

・Linux Empty Application を選択して、Finish ボタンをクリックした。

・cam_disp3_linux プロジェクトが出来たので、予め作ってあった cam_disp3_linux.c をcam_disp3_linux -> src フォルダにドラックアンドドロップした。

・cam_disp3_linux プロジェクトを右クリックして、右クリックメニューからDebug as -> Debug Configurations を選択した。
・Debug Configurationウイザードで、Remote ARM Linux Application を右クリックして右クリックメニューからNew を選択した。

・Debug Configurationウイザードで、Connection のNew ボタンをクリックした。

・New Connection ウイザードが開く。SSH Only をクリックした。Next -> ボタンをクリックした。

・Host Name にZedBoard のIPを入力した。(192.168.3.130)
・Description には、cam_disp3_linux_test と入力した。
・Finishボタンをクリックした。

・ Remote Absolute File Path for C/C++ Application のBrows... ボタンをクリックした。

・ウイザードでroot を展開する。

・Enter Passwordウイザードで、ID (root) とパスワード (root) を入力する。
・Save User ID と Save Password のチェックボックスにチェックを入れる。

・OKボタンをクリックした。Warning ダイアログが出た。Yesボタンをクリックした。

・Select Remote C/C++ Application File ダイアログで、ツリー状のマークを展開した。

・Rootの下にフォルダを作る。右クリックメニューからNew -> Folder をクリックした。

・New folder name: にApps と入力した。Apps フォルダを作成する。

・Apps フォルダの右クリックメニューからNew -> File を選択した。

・New file name: に cam_disp3_linux.elf と入力して、ファイルを作成した。

・Apps フォルダの下にcam_disp3_linux.elf が作成された。OKボタンをクリックした。

・TeraTerm で確認するとルートの下にApps ディレクトリの下に cam_disp3_linux.elf が作成されているのが見えた。

・Debug Configuration に戻って、Apply ボタンをクリックした。

・Debug ボタンをクリックして、Debug を開始した。

・パースペクティブをデバックにスイッチするダイアログが出るので、Yes ボタンをクリックした。

・Eclipse がデバックモードになって main() の最初の行で停止している。

・こんな感じでリモートデバックしている。
(2013/02/15:追加)
リモートデバックはうまく出来ているのだが、カメラ画像が映らない。デバック中。
(2013/02/14:追加)ソフトウェアでGPIOを制御して、VGAの出力は出ているようなのですが、出力周波数がディスプレイのロック範囲を超えてしまっているようです。FCLK_CLK3を40MHzに設定して、ピクセルクロックに使っているので、そこが書き換えられたんでしょうか?
- 2013年02月13日 05:45 |
- ZedBoard
-
| トラックバック:0
-
| コメント:2
Linux起動時にVGA/HDMIが表示されるとのことなので、VGA/HDMI用のドライバが組み込まれた時点で初期化されているのではないでしょうか?
ビデオメモリに関してもドライバが動的に取得している場合は、ドライバのロード時点でアドレスが変更される可能性があります。
(組み込み用なので固定している可能性も捨てきれませんが)
ADVのサンプルでは、アプリが起動した時点で関連するレジスタを全て書き直しているようなので、Linuxを起動した後に書き直すかドライバを書き直すしか手はないかもしれません。
私もこの辺りで躓いたのですが、Linuxに詳しい人がちょこちょこっとやったら動いたので勉強しないままでした。
- 2013/02/14(木) 10:09:06 |
- URL |
- おる #qbIq4rIg
- [ 編集 ]
おるさん、いつもありがとうございます。
今、回避策を練っていますが、遠からずLinuxカーネルビルドは必要となると思うので、勉強しようと思っています。やはりソフトウェアをカスタマイズしたいです。
- 2013/02/15(金) 04:08:17 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]