文章目录
具体方法与 SDK 的多核工作实现方法基本一致,详细操作可以参考 zcu102 系列文档。
本文的代码工程继承 vitis_zcu102_1 文档
添加 Domain
打开 Platform Project,双击 platform.spr 文件,打开当前工程
在打开的工程界面内选择当前 Platform Project,在右键菜单中选择 Add Domain
如下图所示,分别添加 psu_cortexa53_1、psu_cortexa53_2、psu_cortexa53_3 的 Domain。
添加完全部 Domain 之后,在 Explorer 的工程中右键选择 Build Project。
添加 Application Project
在菜单栏选择 File > New > Application Project
在弹出窗口中选择 System Project 为同一个 hello_system
按照 vitis_zcu102_1 文档的说明选择 Platform Project 和 psu_cortexa53_1、psu_cortexa53_2、psu_cortexa53_3,分别建立 3 个 Application,都使用 Hello World 模板。
配置 Application 的指令空间
由于 4 个 A53 核使用访问同 1 个 DDR,因此必须将 4 个 Application 的指令空间分开,不能重叠。
双击打开 4 个 Application 的 lscript.ld 文件
在 Available Memory Regions 中修改 psu_ddr_0_MEM_0
4 个 Application 的修改数值如下表所示:
分配结果如下表:
单核工程 | Base Address | Size |
---|---|---|
a0 | 0x0 | 0x10000000 |
a1 | 0x10000000 | 0x10000000 |
a2 | 0x20000000 | 0x10000000 |
a3 | 0x30000000 | 0x10000000 |
编写测试代码:
a0 代码
#include <stdio.h>
#include "platform.h"