Zynq UltraScale+ MPSoC-AMP(linux+裸机)

接着 Zynq UltraScale+ MPSoC-双核裸机AMP继续
平台工具:zcu106,vitis2020.2,petalinux2019.2

1.cpu1跑裸机

参照Zynq UltraScale+ MPSoC-双核裸机AMP建立的工程进行修改。BSP中stdin与out修改为uart1,uart1给裸机用,uart0给linux用。
在这里插入图片描述
ddr空间裸机与linux也需要分开,此时cpu1的ddr空间为
在这里插入图片描述

2.cpu0跑linux

2.1petalinux设置

petalinux-config

ddr空间默认是0x0~0x7fffffff,此空间给linux运行,与裸机ddr空间无重合,可以不改。

DTG setting–>Kernel Bootargs,关闭generate boot args automatically,选择自定义,maxcpu设置为1。
在这里插入图片描述
配置成clk_ignore_unused是阻止linux默认关闭未使用的外设时钟,uart1在linux中没有用到,会被系统关闭,从而导致裸机uart1无法使用。

2.2 app

创建hellolinux的工程

petalinux-create -t apps --template c --name hellolinux --enable

如下
在这里插入图片描述
在<工程路径>/project-spec/meta-user/recipes-apps/hellolinux/files下生成hellolinux.c文件,对其进行修改如下
在这里插入图片描述
确认hellolinux被装载

petalinux-config -c rootfs

apps选项如下,新程序被使用。

在这里插入图片描述

2.3 设备树

设备树路径
<工程路径>/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi
修改如下:

在这里插入图片描述
完成以上步骤重新编译一次

petalinux-build

3.生成BOOT.BIN

用petalinux将cpu1.elf与fsbl.elf,u-boot.elf等其他文件一起打包,这种方式没有测试成功。
还是使用vitis进行打包,vitis->xilinx->create boot image
在这里插入图片描述
具体设置如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其他默认

4.zcu106测试

使用zcu106开发板进行测试,BOOT.BIN,image.ub拷贝至sd卡,开机。
linux使用uart0,裸机使用uart1,开两个串口通讯工具同时接收两个cpu发的数据,如下
在这里插入图片描述
测试成功。

5.补充

1.linux 下devmem得到错误“devmem:mmap:operation not permitted”
内核配置->Kernel hacking->Filter access to /dev/mem,此选项取消

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值