Document made with KompoZer
Xilinx-Zynq-Arm-Linux
 
ZedBoard

マニ
ュアル

 
Avnet HPより
ZedBoard_HW_UG_v1_6.pdf
Hardware User’s Guide

C01600100_Zed_Board_revC.ashx
はじめてのZed Board キット入門
日本語が出ました

 PB-AES-Z7EV-7Z020-G-V1d.pdf
Product Brief ZedBoard

2013/4に追加されていた
Embedded Linux Hands-on Tutorial - ZedBoard

j_ug821-zynq-7000-swdev.pdf 日本語
 Zynq-7000 All Programmable SoC ソ フ ト ウ ェ ア開発者向けガイ ド
  かなり詳しく書かれている

Xilinx HPより
 Zynq ZC702が対象だがZedとほぼ同じ

ug925-zynq-zc702-base-trd.pdf
Zynq-7000 EPP ZC702 Base Targeted Reference Design User Guide

ug873_zynq_ctt.pdf
Zynq-7000 EPP Concepts, Tools, and Technique

digilent HPより
um.pdf
Zed Hardware User’s Guide

sch.pdf
Zed回路図
当社の別ページです、こちらから来た人は元に戻ります
ZedBoard Linux を探検する

MaximのHP
 電源ICの回路と資料
  サンプルももらえる

新規構築
 SDKを立ち上げ、Buildすると
 arm-xilinx-eabi-gcc: not found

http://japan.xilinx.com/support/answers/46961.htm
14.1 EDK - パスにスペースが含まれるディレクトリにインストーラーがあると ARM ツールチェーンがインストールされない
 14.2でも修正されていない上記ページを見て解決する。

ARMクロスコンパイルにMingwを使う
  Linuxで動作するのでXilinxツールを使う必要はない。
  Sourcery CodeBench Liteのソースをダウンロードしてコンパイルする。
  簡単なテストプログラムならXPでやった方がマシンが1台で済むのでよい、
  カーネルなど大物は、Mingwは超低速なのでLinuxの方でやった方がいいようだ。
  最近はLinuxでの開発環境が整ってきた、XPでの開発環境のほとんどがUNIXから移植された物のようでもとに戻っただけである。

Windows用バイナリならちょっと古いが、アプリケーションでスタティックリンクなら問題ない。
Sourcery G++ Lite 2009q3-67 for ARM GNU/Linux
https://sourcery.mentor.com/GNUToolchain/package5386/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi.exe
バイナリを展開するだけです。
ZedBoard Linux を探検する
 に書いたようにフレームバッファは動作しているので当座はドライバーなど書かないで済みそうだ、パフォーマンスが必要になってからでOK、
LinuxにinatallしたEDKでも Sourcery G++ Liteでgccのバージョンも同じだった。
これでカーネルのコンパイルができるのかな?LiteバージョンはARMアーキテクチャの制限があってcortexA9の機能は使えなさそうである。

 ユーザーランドでなにかやってみよう。

フレームバッファの実験
ls -R>/dev/fb0
 画面が砂嵐になる
cat /tmp/img.raw >/dev/fb0
 もとに戻る
  /tmp/img.rawが初期化時のペンギンの絵のデータだ。
  このフォーマットが解れば画面が出せる。
32Bit/pixsel
8Bit/Color RGBαの順
α=0で良い
 で画面サイズで配列すれば良い。
 当然左上のデータから書き込む。

フレームバッファの実験(その2)
ここ
を参考に少し簡単な変更でフレームバッファ直書きの実験をしてみた。okgnzさんありがとうございます。
LCD表示が対象なので16Bit/pixselの仕様、これを32Bit/pixsel仕様にする
変更は下記の所

//#include <sys/mman.h>
#include <linux/mman.h>

#define COLOR_RED    0x00ff0000
#define COLOR_GREEN  0x0000ff00
#define COLOR_BLUE   0x000000ff
#define COLOR_WHITE  0x00ffffff
#define COLOR_BLACK  0x00000000
#define COLOR_YELLOW 0xffff0000

    //unsigned short tcolor ;
    unsigned int tcolor ; 32Bit

32Bit/pixselなので、デバッグはPCで出来る、
ところがフレームバッファfb0は起動時に見えるだけのようだ、sleep状態から復帰する時一瞬見えるのでこれで何とかデバッグ。
動画は無理、この辺は起動スクリプトをいじってXが起動しないようにするしか無いのかな?
→ knoppixの場合 Ctrl+Alt+F3でシングルユーザーになれる ー> Ctrl+Alt+F5で元に戻る
 但しコンソールの文字が上書きされる

ARMはリトルエンディアンが基本なので再コンパイルのみでZedに移植出来た、std i/oと比べれば超高速。

JPEG画像の表示

FBV
frame buffer vewreを使う方法
libjpegを呼ぶのでまずこれをインストールする。

fbset コマンドを叩くと
mode "800x600-60"
    # D: 40.000 MHz, H: 37.879 kHz, V: 60.317 Hz
    geometry 800 600 800 32767 8
    timings 25000 88 40 23 1 128 4
    hsync high
    vsync high
    accel true
    rgba 8/0,8/0,8/0,0/0
endmode

fbset は、設定ファイル中に格納されているビデオモードのデータベースを使う
なにもオプションが無いとfb0の設定を表示する

アプリの拡張
十字(UP/DN/L/R/Select)キーを読む
GPIOセットアップスクリプトを拡張すればOK
起動スクリプトサンプル
rcS
読み込みスクリプトサンプル
readsw13

デバッグ
Zed_BoardのLinuxにはgdbserverがデフォルトでインストールされている
使い方

JTAGを使う
JP7〜11をGNDにする
ZedBoardのデバッグポートUSB(電源コネクターの隣)をXpパソコンに繫ぐ
デバイスマネージャでは、usb Sirial Converterが追加される、メーカーFTDI
COMポートは増えない

SDイメージ

ブートイメージの作成
       [bootloader]<fsbl_name>.elf
       <pl_bitstream_name>.bit
       <u-boot_name>.elf
をマージするらしい

第一段ブート [bootloader]<fsbl_name>.elf
ハードコンフィギレーション <pl_bitstream_name>.bit
第二段ブート <u-boot_name>.elf

の順で実施されるようだ
ハードコンフィギレーションが二番目にくるのはARMからFPGAのコンフィギレーションをしているためだ。
 この後Linuxがブートされる
作成はSDKを使う他コマンドラインからでも可能。
C:\Xilinx\14.2\SDK\SDK\bin\nt\bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN
bootimageの例
"linux_bootimage.bif"
       the_ROM_image:
       {
       zynq_fsbl.elf
       system.bit
       u-boot.elf
       }
alsa
MIC,LINE-IN,LINE-OUT,HedPhoneのAUDIOI/Fがある。
チップはADAU1761だ
どんなドライバーが有るか見ると
zynq> find / -name  *snd* -print
/proc/device-tree/axi@0/adv7511_hdmi_snd
/proc/driver/snd-page-alloc
/sys/devices/platform/snd-soc-dummy
/sys/devices/axi.0/adv7511_hdmi_snd.2
/sys/bus/platform/devices/adv7511_hdmi_snd.2
/sys/bus/platform/devices/snd-soc-dummy
/sys/bus/platform/drivers/snd-soc-dummy
/sys/bus/platform/drivers/snd-soc-dummy/snd-soc-dummy
/sys/bus/platform/drivers/adv7511-hdmi-snd
/sys/bus/platform/drivers/adv7511-hdmi-snd/adv7511_hdmi_snd.2
/sys/module/snd
/sys/module/snd_timer
/sys/module/snd_pcm
 hdmi関連だけのようである。

ADAU1761自体内部にDSPを持っていて、ADからEDKがダウンロードできる。
つまりADAU1761にプログラムをダウンロードしないと動かない。
Digilentの最新のソースツリーには入っているらしいが未確認。

dmesgでは
[    0.570000] Advanced Linux Sound Architecture Driver Version 1.0.24.
zynq> cat /proc/asound/cards
 0 [monitor        ]: HDMI_monitor - HDMI monitor
                      HDMI monitor
cardsとしてHDMIだけしかないので、音をだすのはHDMI以外は難しい。


ユーザーカスタムIPの変更
ここユーザーカスタムIPの変更を参考に
LOGOが左右にしか動かないVGA画面にして見た。
..\ZedBoard_OOB_Design\hw\xps_proj\pcores\vga_flyinglogo_v1_00_a\hdl\vhdl\video_merge.vhd
を変更、単にdeltayに関連する記述を削除しただけです。
ソースvideo_merge.vhd

OLED
 製品名 UG-2832HSWEG04
  SSD1306=こっちがバネルでUG-xxはフレキ付きのユニットらしい。
中身はかなり複雑でインターフェースも、パラレル、I2C,SPIが使えピンで切り替える
表示した、パターンのスクロールも出来る
書き込み方法も変えられそうだ。