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

发布时间:2023年12月18日

接着?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
  • 1

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
  • 1

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

petalinux-config -c rootfs
  • 1

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

在这里插入图片描述

2.3 设备树

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

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

petalinux-build
  • 1

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,此选项取消

文章来源:https://blog.csdn.net/zhou8400/article/details/135058120
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。