導航:首頁 > 源碼編譯 > zynq編譯選項O3

zynq編譯選項O3

發布時間:2022-08-03 19:50:24

㈠ zynqmp 怎麼將linux系統下載到emmc

1,vivado硬體配置,要選擇EMMC代表的SD1;

2,編譯petalinux:執行petalinux-config。

(1)選擇Subsystem AUTO Hardware Setting

-> Advanced bootable images storage settings

->boot image settings;

選擇primary flash,這里是將BOOT.bin設置為從qspi flash啟動

(2)選擇Subsystem AUTO Hardware Setting

-> Advanced bootable images storage settings

->kernel image settings;

選擇primary sd,進入後我們看到這里實際就是設置image.ub的存放區域。

(3)選擇Image Packaging Configuration,設置啟動啟動文件系統所在位置;

在設置啟動方式的時候,如下兩張圖這樣設置讀取根文件系統的位置/dev/mmcblk1p2。

(4)設置你的驅動然後編譯,依次執行:petalinux-config -c kernel;petalinux-config -c rootfs;

petalinux-build;petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force;

3,做之前先分區(把EMMC分區),先做一個SD卡啟動的petalinux文件,

petalinux系統在zynq上面啟動起來以後就進行如下分區:即是mmcblk1分為mmcblk1p1和mmcblk1p2

具體步驟如下:

(1) 把EMMC進行分區,執行命令: fdisk /dev/mmcblk1

(2)使用n命令,添加一個新的分區

Command (m for help): n

Command action

e extended

p primary partition (1-4)

選擇p,添加主分區

,(3)選擇分區號,選擇1,

Partition number (1-4): 1 // 選擇分區號

First cylinder (1-238592, default 1): Using default value 1 // 選擇分區的第一個柱面,選擇1

Last cylinder or +size or +sizeM or +sizeK (1-238592, default 238592): Using default value 238592 // 選擇最後一個柱面

注意:1-238592,first要選第一個數,last要選擇的比238592小,其中1024就是表示1M

(4)使用t命令,設置分區格式

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): b
Changed system type of partition 1 to b (Win95 FAT32)
(5)使用w命令,保存配置,必須保存配置

Command (m for help): w

The partition table has been altered.

Calling ioctl() to re-read partition table

(6)使用對應文件系統工具對分析進行格式化(只能在debian裡面才能識別命令)

mkfs.fat /dev/mmcblk1p1 設置為fat32格式

mkfs.ext4 /dev/mmcblk1p2設置為ext4格式

注意:執行完w命令然後才算分區成功,執行完mkfs命令才算格設置內存屬性成功。

以上分區完成後,可以使用p命令,顯示分區信息;也可以使用用d命令表示刪除分區

Command (m for help): p

Disk /dev/mmcblk0: 7818 MB, 7818182656 bytes

4 heads, 16 sectors/track, 238592 cylinders

Units = cylinders of 64 * 512 = 32768 bytes

Device Boot Start End Blocks Id System

/dev/mmcblk0p1 1 238592 7634936 83 Linux

(7)執行這句:mkdosfs -F 32 /dev/mmcblk0p1

當然,可以重復上述步驟,多分幾個區,用來存放不同的狀態:

FLASH要要用來存放BOOT.bin

第一個分區用來存放image.ub或者設備樹(比如uImage和devicetree.dtb)等文件;--可以設置為128MB

第二個分區用來存放用戶數據(比如可執行程序);可以設置為2048MB

第三個分區用來存放程序執行需要的庫文件(opencv的庫,qtcreator庫,相機庫,視頻編碼解碼庫等);剩餘的1個多GB

4,把系統同步到ext4裡面

先把sd卡裡面系統掛載進來 :mount /dev/mmcblk0p2 /mnt

再把剛剛弄好的系統掛進來: mount /dev/mmcblk1p2 /tmp , 然後cd /mnt

然後進入把SD卡裡面的系統同步到emmc裡面:rsync -av ./* /tmp ,時間有點久,直到結束為止。

(要是不用SD卡也可以掛載U盤,解壓,然後進行系統同步到EMMC所掛載的地方/tmp)

5,然後將BOOT.BIN和image.ub燒錄到QSPI-FLASH中

首先擦除QSPI-FLASH:flash_eraseall /dev/mtd0

存放BOOT.bin到flash : flashcp BOOT.bin /dev/mtd0

此處若是將image.ub寫入emmc的FAT分區中(不存放到flash中),先使用mount掛載eMMC的FAT分區,

然後將image.ub使用cp指令拷貝進 /mnt/mmcFat即可,也就是把uImage 拷貝到 /dev/mmcblk1p1;

進入uImage所在目錄,然後執行 cp uImage /tmp;也就是把uImage存放到了 /dev/mmcblk1p1裡面。

6,最後斷電拔出SD卡,將撥碼開關設置為flash啟動,就能看到petalinux啟動起來;

7,報錯及其解決辦法

————————————————
版權聲明:本文為CSDN博主「寒聽雪落」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wangjie36/article/details/104740448/

㈡ 如何為zynq-7000創建BOOT.bin文件

1、用於創建BOOT.bin需要的文件

(1)u-boot.elf:在Linux下編譯後生成u-boot文件,再強制改名為u-boot.elf文件,得到之。

(2)zynq_fsbl_0.elf:在EDk下創建得到之。

(3)system.bit::在PlanAhead中生成的bit文件;該文件不是必須的,沒有該文件時,相當於把Zynq只當ARM來用。

2、創建BOOT.bin文件

(1)只含有PS部分的設計

在SDk下,Xilinx Tools -> Craete Boot
Image得到如下圖所示:

(2)同時包含有PS和PL設計

在(1)中所述生成的BOOT.bin文件不含有給PL部分配置的*.bit文件,即只是ARM部分的運行代碼。要使PL部分也能運行,需要在創建BOOT.bin文件時,加入PL部分的設計生成system.bit文件


相比而言,由於(1)中生成的BOOT.bin文件沒有PL部分的設計,也就無需對PL進行配置,所以啟動時會快一些,而(2)中的BOOT.bin文件啟動要慢一些,大概有30s~40s不等(依賴於system.bit文件的大小)。

㈢ 沒硬體怎麼玩zynq7000

官網提供的可執行文件是基於64位Linux的:zynq_linux.tar.gz.
對於32位的系統,需要自己編譯,解決方案如下:
1) 下載代碼:git clone git://git.xilinx.com/qemu-xarm.git
2) 配置工程:
cd qemu-xarm
./configure --target-list=arm-softmmu --disable-werror --disable-kvm
3) 編譯: make
4) 編譯結果:
[walt@zynq7k qemu-xarm]$ ls -l arm-softmmu/qemu-system-arm
-rwxrwxr-x. 1 walt walt 18428427 Nov 6 15:27 arm-softmmu/qemu-system-arm
5) 檢測環境是否OK,測試如下:
[walt@zynq7k qemu-xarm]$ ./arm-softmmu/qemu-system-arm -h
QEMU emulator version 1.0.50, Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu-system-arm [options] [disk_image]
『disk_image』 is a raw hard disk image for IDE hard disk 0
Standard options:
-h or -help display this help and exit
-version display version information and exit
-machine [type=]name[,prop[=value][,...]]
selects emulated machine (-machine ? for list)
property accel=accel1[:accel2[:...]] selects accelerator
supported accelerators are kvm, xen, tcg (default: tcg)
-cpu cpu select CPU (-cpu ? for list)
…… ……
註: 若無法執行,請按http://wiki.xilinx.com/zynq-qemu提示安裝缺失的動態庫。
替換官方下載的壓縮包中的文件為新編譯的qemu-system-arm,測試執行如下:
[walt@zynq7k zynq_linux]# ./start_qemu.sh
ram size=40000000
error reading QSPI block device
error no mtd drive for nand flash
a0mpcore_priv: smp_priv_base f8f00000
error no sd drive for sdhci controller (0)
error no sd drive for sdhci controller (1)
Number of configured NICs 0×1
ram_size 40000000, board_id d32, loader_start 0
Uncompressing Linux… done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.3.0-14.2-build1 (relman@xcobldal824) (gcc version 4.6.1 (Sourcery CodeBench Lite 2011.09-50) ) #1 SMP PREEMPT Thu Jul 12 09:04:32 MDT 2012
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Xilinx Zynq Platform, model: Xilinx Zynq ZC702
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 7 pages/cpu @c190b000 s5696 r8192 d14784 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 255744
Kernel command line: console=ttyPS0,115200 root=/dev/ram rw initrd=0×800000,8M ip=:::::eth0:dhcp earlyprintk
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 240MB 768MB = 1008MB total
Memory: 1009280k/1009280k available, 39296k reserved, 270336K highmem
Virtual kernel memory layout:
vector : 0xffff0000 – 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 – 0xfffe0000 ( 896 kB)
vmalloc : 0xf0000000 – 0xff000000 ( 240 MB)
lowmem : 0xc0000000 – 0xef800000 ( 760 MB)
pkmap : 0xbfe00000 – 0xc0000000 ( 2 MB)
moles : 0xbf000000 – 0xbfe00000 ( 14 MB)
.text : 0xc0008000 – 0xc040bdb0 (4112 kB)
.init : 0xc040c000 – 0xc0430640 ( 146 kB)
.data : 0xc0432000 – 0xc045fd20 ( 184 kB)
.bss : 0xc045fd44 – 0xc0479f5c ( 105 kB)
Preemptible hierarchical RCU implementation.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:128
xlnx,ps7-ttc-1.00.a #0 at 0xf0000000, irq=43
Console: colour mmy device 80×30
Calibrating delay loop… 147.35 BogoMIPS (lpj=736768)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
smp_twd: clock not found: -2
Calibrating local timer… 84.48MHz.
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 1 counters available
Setting up static identity map for 0x2f3000 – 0x2f3034
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (271.66 BogoMIPS).
devtmpfs: initialized
NET: Registered protocol family 16
L2x0 series cache controller enabled
l2x0: 8 ways, CACHE_ID 0×00000000, AUX_CTRL 0×72060000, Cache size: 524288 B
registering platform device 『pl330′ id 0
registering platform device 『arm-pmu』 id 0
hw-breakpoint: debug architecture 0×0 unsupported.
xslcr xslcr.0: at 0xF8000000 mapped to 0xF0008000
bio: create slab at 0
gpiochip_add: registered GPIOs 0 to 245 on device: xgpiops
xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xf000a000
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource xttcpss_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport mole.
RPC: Registered udp transport mole.
RPC: Registered tcp transport mole.
RPC: Registered tcp NFSv4.1 backchannel transport mole.
Trying to unpack rootfs image as initramfs…
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
Freeing initrd memory: 8192K
xscugtimer xscugtimer.0: ioremap fe00c200 to f000c200 with size 400
pl330 dev 0 probe success
highmem bounce pool size: 64 pages
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
msgmni has been set to 1459
io scheler noop registered
io scheler deadline registered
io scheler cfq registered (default)
e0001000.uart: ttyPS0 at MMIO 0xe0001000 (irq = 82) is a xuartps
console [ttyPS0] enabled, bootconsole disabled
console [ttyPS0] enabled, bootconsole disabled
e0000000.uart: ttyPS1 at MMIO 0xe0000000 (irq = 59) is a xuartps
xdevcfg f8007000.devcfg: ioremap f8007000 to f0060000 with size 100
brd: mole loaded
loop: mole loaded
GEM: BASEADDRESS hw: e000b000 virt: f0062000
XEMACPS mii bus: probed
xemacps e000b000.eth: invalid address, use assigned
MAC updated d2:c4:43:31:6b:d0
eth0, pdev->id -1, baseaddr 0xe000b000, irq 54
ehci_hcd: USB 2.0 『Enhanced』 Host Controller (EHCI) Driver
xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller
xusbps-ehci xusbps-ehci.0: new USB bus registered, assigned bus number 1
xusbps-ehci xusbps-ehci.0: irq 53, io mem 0×00000000
xusbps-ehci xusbps-ehci.0: USB 2.0 started, EHCI 0.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 0 ports detected
Initializing USB Mass Storage driver…
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
Xilinx PS USB Device Controller driver (Apr 01, 2011)
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
Linux video capture interface: v2.00
gspca_main: v2.14.0 registered
uvcvideo: Unable to create debugfs directory
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)
WDT OF probe
xwdtps f8005000.swdt: Xilinx Watchdog Timer at 0xf0066000 with timeout 10 seconds
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: implementor 41 architecture 3 part 40 variant 0 rev 0
Registering SWP/SWPB emulation handler
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
GEM: lp->tx_bd ffdfb000 lp->tx_bd_dma 2f2b2000 lp->tx_skb ee9199c0
GEM: lp->rx_bd ffdfc000 lp->rx_bd_dma 2f2b1000 lp->rx_skb ee9198c0
GEM: MAC 0x3143c4d2, 0x0000d06b, d2:c4:43:31:6b:d0
GEM: phydev ee90ec00, phydev->phy_id 0x1410cc2, phydev->addr 0×17
eth0, phy_addr 0×17, phy_id 0x01410cc2
eth0, attach [Marvell 88E1111] phy driver
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 10.0.2.2, my address is 10.0.2.15
IP-Config: Complete:
device=eth0, addr=10.0.2.15, mask=255.255.255.0, gw=10.0.2.2,
host=10.0.2.15, domain=, nis-domain=(none),
bootserver=10.0.2.2, rootserver=10.0.2.2, rootpath=
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 8192KiB [1 disk] into ram disk… done.
VFS: Mounted root (ext2 filesystem) on device 1:0.
devtmpfs: mounted
Freeing init memory: 144K
Starting rcS…
++ Mounting filesystem
++ Setting up mdev
eth0: link up (1000/FULL)
++ Starting telnet daemon
++ Starting http daemon
++ Starting ftp daemon
++ Starting dropbear (ssh) daemon
rcS Complete
zynq> uname -v
#1 SMP PREEMPT Thu Jul 12 09:04:32 MDT 2012
zynq> df
Filesystem 1K-blocks Used Available Use% Mounted on
none 508808 0 508808 0% /tmp
zynq>

㈣ 如何在Zynq-7000上燒寫PL Image

在Zynq-7000上編程PL大致有3種方法: 1. 用FSBL,將bitstream集成到boot.bin中 2. 用U-BOOT命令 3. 在Linux下用xdevcfg驅動。 步驟: 1. 去掉bitstream的文件頭 用FSBL燒寫PL Images沒有什麼好說的,用Xilinx SDK的Create Boot Image工具即可完成,不再贅述。用後兩種方法需要把bitstream文件的文件頭用bootgen工具去掉。 一個典型的bif文件如下所示: the_ROM_image: { [bootloader]<fsbl_name>.elf <pl_bitstream_name>.bit <u-boot_name>.elf } bif文件可以用文本編輯器寫,也可以用Xilinx SDK的Create Boot Image工具生成。然後在命令行下用以下命令即可去掉bitstream文件的文件頭。 bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN"-split」參數可以生成以下文件: <pl_bitstream_name>.bit.bin 2. 在U-BOOT下燒寫PL Image 命令」fpga load」和」fpga loadb」都可以。區別是前一個命令接受去掉了文件頭的bitstream文件,後一個命令接受含有文件頭的bitstream文件。 在OSL 2014.2上,預設編譯就可以完整支持寫入PL Image的功能。但是在Petalinux 2013.10下,盡管可以在U-BOOT下看到命令」fpga」,還需要在文件 <PROJ>/subsystems/linux/configs/u-boot/platform-top.h 中增加以下內容後重新編譯才可以支持具體的功能。 /* Enable the PL to be downloaded */ #define CONFIG_FPGA #define CONFIG_FPGA_XILINX #define CONFIG_FPGA_ZYNQPL #define CONFIG_CMD_FPGA #define CONFIG_FPGA_LOADFS 在OSL 2014.2 U-BOOT中,具體的功能是在zynqpl.c的zynq_load()中實現的。 3. 在Linux下燒寫PL Image OSL Linux 2014.2.01中已經含有xdevcfg驅動了(之前就有,不過本文是在這個版本上驗證的),直接用以下命令就可以完成PL Image寫入。 cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg Linux驅動的源代碼在xilinx_devcfg.c中。因為驅動的編號是通過alloc_chrdev_region()動態分配的,所以不需要手工用mknod命令手動建立設備節點。 在Linux驅動中,每次往DevCfg中寫入4096位元組,直到全部寫完。 4. 在用戶程序中燒寫PL Image 目前沒有現成的源碼來完成這個功能,不過可以用mmap()把DevCfg的寄存器映射到用戶程序的虛地址中,然後參考一些現成的軟體代碼來完成這個功能: * FSBL中的pcap.c * U-BOOT中的zynqpl.c * Linux中的xilinx_devcfg.c * Xilinx SDK中的例子。例子位於以下位置,隨SDK的版本會有變化。 C:\Xilinx\SDK\2014.1\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_0\examples\index.html 小結: DevCfg外設內部有自己的DMA,只需要簡單的配置PL Image的基地址和長度到DevCfg寄存器,就可以完成Zynq-7000 PL Image的載入。Xilinx已經提供了靈活的解決方案,如果開發者要把這個功能集成在自己的應用程序中,也有很多的代碼可以參考,並不是很困難的任務。

㈤ zynq燒錄程序只能通過JTAG嗎

不是,程序燒錄就是把原程序經編譯處理後載入到計算機中,讓計算機執行你編寫的程序。

㈥ 如何利用Zynq-7000的PL和PS進行交互

在Zynq-7000上編程PL大致有3種方法:
1. 用FSBL,將bitstream集成到boot.bin中
2. 用U-BOOT命令
3. 在Linux下用xdevcfg驅動。

步驟:
1. 去掉bitstream的文件頭

用FSBL燒寫PL Images沒有什麼好說的,用Xilinx SDK的Create Boot Image工具即可完成,不再贅述。用後兩種方法需要把bitstream文件的文件頭用bootgen工具去掉。

一個典型的bif文件如下所示:
the_ROM_image:
{
[bootloader]<fsbl_name>.elf
<pl_bitstream_name>.bit
<u-boot_name>.elf
}
bif文件可以用文本編輯器寫,也可以用Xilinx SDK的Create Boot Image工具生成。然後在命令行下用以下命令即可去掉bitstream文件的文件頭。
bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN
"-split」參數可以生成以下文件:
<pl_bitstream_name>.bit.bin

2. 在U-BOOT下燒寫PL Image
命令」fpga load」和」fpga loadb」都可以。區別是前一個命令接受去掉了文件頭的bitstream文件,後一個命令接受含有文件頭的bitstream文件。

在OSL 2014.2上,預設編譯就可以完整支持寫入PL Image的功能。但是在Petalinux 2013.10下,盡管可以在U-BOOT下看到命令」fpga」,還需要在文件
<PROJ>/subsystems/linux/configs/u-boot/platform-top.h 中增加以下內容後重新編譯才可以支持具體的功能。

/* Enable the PL to be downloaded */
#define CONFIG_FPGA
#define CONFIG_FPGA_XILINX
#define CONFIG_FPGA_ZYNQPL
#define CONFIG_CMD_FPGA
#define CONFIG_FPGA_LOADFS

在OSL 2014.2 U-BOOT中,具體的功能是在zynqpl.c的zynq_load()中實現的。

3. 在Linux下燒寫PL Image
OSL Linux 2014.2.01中已經含有xdevcfg驅動了(之前就有,不過本文是在這個版本上驗證的),直接用以下命令就可以完成PL Image寫入。
cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg

Linux驅動的源代碼在xilinx_devcfg.c中。因為驅動的編號是通過alloc_chrdev_region()動態分配的,所以不需要手工用mknod命令手動建立設備節點。

在Linux驅動中,每次往DevCfg中寫入4096位元組,直到全部寫完。

4. 在用戶程序中燒寫PL Image

目前沒有現成的源碼來完成這個功能,不過可以用mmap()把DevCfg的寄存器映射到用戶程序的虛地址中,然後參考一些現成的軟體代碼來完成這個功能:
* FSBL中的pcap.c
* U-BOOT中的zynqpl.c
* Linux中的xilinx_devcfg.c
* Xilinx SDK中的例子。例子位於以下位置,隨SDK的版本會有變化。
C:\Xilinx\SDK\2014.1\data\embeddedsw\XilinxProcessorIPLib\drivers\devcfg_v3_0\examples\index.html

小結:
DevCfg外設內部有自己的DMA,只需要簡單的配置PL Image的基地址和長度到DevCfg寄存器,就可以完成Zynq-7000 PL Image的載入。Xilinx已經提供了靈活的解決方案,如果開發者要把這個功能集成在自己的應用程序中,也有很多的代碼可以參考,並不是很困難的任務。

㈦ linux編譯u-boot時顯示[arch/arm/dts/zynq-zc702.dtb]錯誤

在編譯uboot的時候,會出現出錯,因此我們要首先做  make disclean. 將原來的一些中間文件清理干凈。

因此在編譯Uboot依次執行  1.make disclean

                                                   ​2.make smdk2440_config

                                                   ​3. make

就可以編譯通過了

㈧ zynq bootargs參數怎麼設置

官網提供的可執行文件是基於64位Linux的:zynq_linux.tar.gz.
對於32位的系統,需要自己編譯,解決方案如下:
1)
下載代碼:git
clone
git://git.xilinx.com/qemu-xarm.git
2)
配置工程:
cd
qemu-xarm
./configure
--target-list=arm-softmmu...

㈨ 如何學習zynq乙太網控制器及協議棧

第 9 章 ZedBoard 入門
前面大家已經對 ZYNQ 架構以及相應的開發工具有一定的認識,接下來我們將帶領大家來一起 體驗 ZYNQ,體驗軟硬體協同設計的魅力。由於時間的關系,下面的一些實驗(本章及後續章節的實驗) 可能有不完善的地方,歡迎讀者向我們反饋。 9.1 跑馬燈 本實驗將指導大家使用 Vivado 集成設計環境創建本書的第一個 Zynq 設計。這里,我們使用跑馬燈 這個入門實驗來向大家介紹 Vivado IDE 的 IP Integrator 環境,並在 Zedboard 上實現這個簡單的 Zynq 嵌 入式系統。之後,我們將會使用 SDK 創建一個簡單的軟體應用程序,並下載到 Zynq 的 ARM 處理器中, 對在 PL 端實現的硬體進行控制。本實驗分為三個小節來向大家進行介紹: ? 第一節我們將使用 Vivado IDE 創建一個工程。 ? 在第一節的基礎上,第二節我們將繼續構建一個 Zynq 嵌入式處理系統,並將完成後的硬體導入 到 SDK 中進行軟體設計。 ? 最後一節我們將使用 SDK 編寫 ARM 測試應用程序, 並下載到 ZedBoard 上進行調試。 實驗環境:Windows 7 x64 操作系統, Vivado2013.4,SDK 2013.4

9.1.1 Vivado 工程創建
1) 雙擊桌面 Vivado 快捷方式 ,或者瀏覽 Start > All Programes > Xilinx Design Tools > Vivado

2013.4 > Vivado 2013.4 來啟動 Vivado. 2) 當 Vivado 啟動後,可以看到圖 9-1 的 Getting Started 頁面。

圖 9- 1 Vivado 開始界面

3) 選擇 Create New Project 選項,圖 9-2 所示的 New Project 向導將會打開,點擊 Next。

圖 9- 2 New Project 對話框 4) 在 Project Name 對話框中,輸入 first_zynq_design 作為 Project name, 選擇 C:/XUP/Zed 作為 Project location,確保 Create project subdirectory 被勾選上,如圖 9-3,點擊 Next。

圖 9- 3 Project Name 對話框 5) 在 Project Type 對話框中,選擇 RTL Project,確保 Do not specify sources at this time 選項沒有 被勾選,如圖 9-4,點擊 Next。

圖 9- 4 Project Type 對話框 6) 在 Add Source 對話框中, 選擇 Verilog 作為目標語言,如果你對 VHDL 熟悉的話, 你也可以 選擇 VHDL,如果這里你忘記了選擇,在工程創建完成後,也可以在工程設置中選擇你熟悉的 HDL 語言。如果你已經有了源文件,在這里就可以選擇 Add file 或者 Add directory 進行添加, 由於我們沒有任何的源文件, 所以這里我們直接點擊 Next 即可,如圖 9-5。

圖 9- 5 添加源文件 7) 在 Add Existing IP 對話框中,點擊 Next。 8) 在 Add Constraints 對話框中,點擊 Next。 9) 在 Default Part 對話框中,在 Specify 框中選擇 Boards 選項,在下面的 Board 列表中選擇 ZedBoard Zynq Evaluation and Development Kit,點擊 Next,如圖 9-6。

圖 9- 6 晶元選擇 10) 在 New Project Summary 對話框中,點解 Finish 完成工程創建,至此,我們已經使用 Vivado 創建了一個 Zynq 設計的工程框架,圖 9-7 為 Vivado 的工程界面,在第四章我們已經對該界面 進行過介紹,如果還不熟悉的讀者再回到前面復習一下。下面我將使用 Flow Navigator 的 IP Integrator 功能完成第二節的嵌入式系統設計。

圖 9- 7 Vivado 工程界面

9.1.2 在 Vivado 中創建 Zynq 嵌入式系統 這一節我們將創建一個簡單的 Zynq 嵌入式系統,該系統使用 Zynq PL 部分實現一個通用 I/O 控制 器 (GPIO),控制器同 ZedBoard 上的 8 個 LED 相連接,並且通過 AXI 匯流排連接到 PS 端,這樣我們就可 以通過將要在第三小節中實現的 ARM 應用程序來對 LED 進行控制。系統結構圖如圖 9-8 所示。

閱讀全文

與zynq編譯選項O3相關的資料

熱點內容
用什麼工具製作安卓應用 瀏覽:484
單片機數碼管的代碼 瀏覽:775
第一款安卓手機是什麼牌子 瀏覽:394
java非同步web 瀏覽:270
51單片機讀tf卡 瀏覽:936
linux下獲取文件 瀏覽:318
加密文件電腦顯示無屏幕截取許可權 瀏覽:352
虛榮安卓用什麼充值 瀏覽:750
阿里雲沒有伺服器如何備案 瀏覽:706
python用戶特性總結 瀏覽:730
華為門鑰匙加密卡怎麼辦 瀏覽:921
南京解壓車要帶什麼 瀏覽:567
天堂2編譯視頻教程 瀏覽:397
伺服器沒有進程怎麼辦 瀏覽:789
阿里雲發布新物種神龍雲伺服器 瀏覽:64
數據結構遞歸演算法統計二叉樹節點 瀏覽:672
ev3怎麼編程 瀏覽:706
gzip壓縮教程 瀏覽:353
解壓模擬例子 瀏覽:989
流媒體伺服器如何實現視頻轉發 瀏覽:62