MPSoC

MPSOC之9——host、embeded间tftp、nfs、ftp环境搭建

tftp
可传输单个文件,不能传文件夹
需要通过命令传输文件,略显复杂
==一般调试kernel时,用uboot通过tftp方式启动,不用每次都烧写存储介质==

nfs
在host linux(ubuntu)上的nfs文件夹中存放文件
开发板上mount ubuntu的文件夹,mount后就像自己的文件一样
这种方式共享文件很方便
也有linux启动后,拿nfs作为根文件系统,方便调试根文件系统的内容

ftp
没有host linux环境时,可以把windows当成ftp client,开发板ftp server
方便拖动文件

tftp
0.客户端命令
tftp -r fileserver -g 192.168.1.200
tftp -l fileclient -p 192.168.1.200

==缺点:不能传文件夹,没有NFS方便==

1.目的
通过tftp、nfs、ftp等方式,实现开发板linux与host高效交换文件。

2.环境说明

PC:
windows 7 IP:192.168.1.100
vmware ubuntu 16.04 IP:192.168.1.200
桥接

开发板:
IP:192.168.1.1

windows/ubuntu/开发板三者能ping通。

MPSOC之8——启动及错误处理

有了BOOT.BIN(fsbl+pmu+atl+uboot)、uImage、uramdisk.image.gz,dtb文件,就可以启动了。把上述文件统统拷贝到SD卡,并设置开发板为SD卡启动。

0. U-BOOT启动参数
设置启动参数,然后启动
fatload mmc 0 0x1000000 uImage;fatload mmc 0 0x2000000 uramdisk.image.gz;fatload mmc 0 0x4000000 zynqmp-sf-zcu102.dtb;
setenv bootargs root=/dev/ram0
bootm 0x1000000 0x2000000 0x4000000

将上述参数固化到flash里,免得每次都要输入

修改env
setenv sf_sdboot "fatload mmc 0 0x1000000 uImage;fatload mmc 0 0x2000000 uramdisk.image.gz;fatload mmc 0 0x4000000 zynqmp-sf-zcu102.dtb;bootm 0x1000000 0x2000000 0x4000000"
setenv bootargs root=/dev/ram0

保存env
ZynqMP> saveenv

MPSOC之7——开发流程uramdisk

用petalinux的预编译目录里有rootfs文件,选择rootfs.tar.gz作为初始输入。

1.原始文件——>uramdisk
1.1 解压原始rootfs.tar.gz,得到若干文件
1.2 !!!制作空ramdisk.image

命令:
dd if=/dev/zero of=ramdisk.image bs=1024 count=131072
mke2fs -F ramdisk.image -L "ramdisk" -b 1024 -m 0
tune2fs ramdisk.image -i 0
chmod a+rwx ramdisk.image

执行过程:

创建ramdisk.image,大小128M,用0填充,ramdisk.image可以理解成磁盘
liuwanpeng@liuwanpeng-virtual-machine:~/work$ dd if=/dev/zero of=ramdisk.image bs=1024 count=131072
记录了131072+0 的读入
记录了131072+0 的写出
134217728 bytes (134 MB, 128 MiB) copied, 0.443892 s, 302 MB/s

格式化为ext2

MPSOC之6——开发流程linux编译

0.顶层Makefile增加交叉编译器

顶层makefile:
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

改为:
ARCH ?= arm64
CROSS_COMPILE ?= aarch64-linux-gnu-

1.生成.config

***_defconfig文件一般的芯片都有,找到以后,用如下命令,其实就是拷贝到顶层目录,并命名为.config,里面包含一堆配置,make时读取。
***_defconfig文件在 arch/arm64/configs/目录下
[liuwanpeng@localhost linux]$ make xilinx_zynqmp_defconfig O=./output/
#
# configuration written to .config
#

单独输出到其他文件件有助于源码进行git管理,否则乱的文件。

2.make

[liuwanpeng@localhost linux]$ make LOADADDR=0x8000

默认生成Image,若想生成uImage,需要加上uImage后缀

MPSOC之5——开发流程BOOT.BIN

作者:liuwanpeng

需要把若干文件打成大包,烧写到flash或者sd卡中,才能启动运行。

1.petalinux打包
petalinux-packet打包时,需要petalinux的工程,限制太死了,不用。

2 windows环境SDK打包
2.1 制作BOOT.bin
用SDK的图形界面搞定也是一样的。(markdown显示本地图片,路径里的\要换成/,蛋疼)


为啥必须要pmu和atf,后续再研究,先把系统启动起来再说。

2.2 烧写到SD卡

MPSOC之4——petalinux提取源码

petalinux使用太不方便,捆绑的太死板,也不通用,还不如直接用编译器来的简单高效。本文说明从petalinux中提取出源代码的过程,前提是已经petalinux-build完成。

1. uboot
编译结果里没有uboot的源码,可能是编译完了就删除了。
从git上下载吧。
git clone https://github.com/Xilinx/u-boot-xlnx.git

2. linux
分析log文件太费劲了,直接查找linux内核的文件,获取内核源码。
[liuwanpeng@localhost xilinx-zcu102-2017.2]$ find ./ -name "core.c" -print
./build/tmp/sysroots/plnx_aarch64/usr/lib/perl/ptest/ext/XS-APItest/core.c
./build/tmp/work-shared/plnx_aarch64/kernel-source/arch/arm/mach-cns3xxx/core.c
./build/tmp/work-shared/plnx_aarch64/kernel-source/arch/arm/mach-ebsa110/core.c

MPSOC之3——centos环境配置及petalinux安装及使用

作者:liuwanpeng

ubuntu虽然能正常安装,但是build时会出现闪退情况,闪退后一切归零,没啥错误提示,改用centos来安装petalinux。

0.环境
vmware pro 14,centos 7.3
petalinux 2017.2

1.petalinux安装环境配置
除了python,其他都用yum直接安装即可,安装UG1144里的所有库

python安装过程:
wget https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz
tar xf Python-3.4.1.tgz
cd Python-3.4.1
./configure
make
make install

安装到/usr/local/bin/python3目录了,在/usr/bin/中创建指向该位置的符号连接
ln -s /usr/local/bin/python3 /usr/bin/python3

2.安装及配置
[root@localhost opt]# chown liuwanpeng:liuwanpeng -R /opt
[root@localhost opt]# ls / -lh
总用量 28K

MPSOC之2——ubuntu环境配置及petalinux安装

作者:liuwanpeng

MPSOC的linux开发需要使用petalinux,选择Ubuntu操作系统。

1.Ubuntu
1.1. Ubuntu安装
版本16.04.03
vmare版本:12.0
安装时注意选择“稍后安装”,否则是阉割版。另外,有个界面显示“删除整个磁盘”指的是虚拟机的磁盘,不会删除host上的内容,可以放心。
剩下就是一路next了,比较简单。

1.2. Vmware Ubuntu和HOST主机共享网络
现在公司的网络一般都处于域中,而且访问外网一般都需要批准。偏偏我们公司外网权限不好申请,只能采用变态的方法了。

  • HOST(windows)系统下载Fan Qiang软件,具体名字不说了。保证host能更访问外网
  • 在HOST的软件里,设置代理,假设产生的代理地址为 :192.168.250.62:9666
  • vmware 桥接,使ubuntu产生一个准物里网卡
  • MPSOC之1——overview、开发板、工具

    作者:liuwanpeng

    1.MPSOC overview

    MPSOC是xilinx公司推出的新一代集成SOC,比ZYNQ厉害了一个等级。

    熟悉一个芯片,不能一头扎进详细的数据手册,应该从overview开始大概了解,然后浏览user manual的前几章,具体外设用时细读。

    文档:ds891-zynq-ultrascale-plus-overview.pdf  

    与ZYNQ相比,最明显的变化是集成 4CORE A53 / 2 core R5,还有GPU,H264等,覆盖了各种高端应用场合,在图像处理,智能算法等嵌入式实现时,比较有竞争力。

    可扩展电源设计简化和加速了Xilinx Zynq UltraScale+ MPSoC系列电源解决方案的开发

    全球电子元器件与开发服务分销商e 络盟推出两款德州仪器参考设计,为Xilinx® Zynq® UltraScale+ MPSoC系列产品的客户提供支持,让他们可以更轻松地运用这些设备开发电源解决方案,加速其创新应用开发。

    这些参考设计为可扩展电源,可为基于 FPGA 的 Xilinx Zynq UltraScale+ 系列MPSoC器件供电。有了它们,客户在完全了解其电源需求之前即可轻松进行原型设计。这些设计从标准直流电源接收电力,并通过明确的Samtec插座端子板连接方式向 Xilinx 芯片组和 DDR 存储器的所有导轨供电。

    同步内容