xilinx 双核AMP运行------zynq 7020

    zynq7020 片子相对较老,支持的bif文件中,不能指定各个核运行的应用程序,所以不能使用zynqMp直接指定程序运行在那个核上的方式进行。

一 、双核裸机AMP运行方式:

       可以使用两种方式进行;core0应用启动core1应用 核fsbl启动程序添加加载core1的应用。两种方式原理一样,实现的位置不同。

/* 此处代码可以放在core0的应用程序中,也可以放在fsbl的应用程序中 */
#define sev() __asm__("sev")
#define CPU1STARTADR 0xFFFFFFF0
#define CPU1STARTMEM 0x20000000

void StartCpu1(void)
{
    /* 指定core1启动位置 */
	Xil_Out32(CPU1STARTADR, CPU1STARTMEM);
	dmb();
	printf("satrt core1 \r\n");
     /* 启动core1 */
	sev();
}

1.1 core0 启动core1

core0 调用位置:在init_platform()之后;

    init_platform();    

	Xil_SetTlbAttributes(0xFFFF0000,0x14de2);
	
	StartCpu1();

core1中需要调用Xil_SetTlbAttributes(0xFFFF0000,0x14de2); 关闭cache;

同时需要在bsp中,增加 -g DUSE_AMP=1 选项;不修改前面的条件;

createBootImage 添加顺序;fsbl->*.bit->core0.elf>core1.elf

1.2 fsbl 启动core1

fsbl调用位置:main.c中在LoadBootImage()之后;

core1中需要调用Xil_SetTlbAttributes(0xFFFF0000,0x14de2); 关闭cache;

同时需要在bsp中,增加 -g DUSE_AMP=1 选项;不修改前面的条件;

createBootImage 添加顺序;fsbl->*.bit->core0.elf>core1.elf

二 、双核Linux+裸机 AMP运行方式:

1、linux使用petalinux生成,并使用uart0进行打印调试;系统要禁用uart1(因为core1要使用)

2、core1使用上面的core1.elf,并使用uart1进行打印调试;

3、裸机应用使用core1.elf和fsbl.elf(通过fsbl加载core1.elf的fsbl.elf 文件)

4、petalinux生成的文件中,需要使用的文件包括:image.ub, uboot.elf,system.bit三个文件;

5、createBootImage 添加顺序;fsbl->*.bit->uboot..elf>core1.elf

6、sd卡放入image.ub文件核BOOT.bin文件(5中生成的)。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 《Xilinx All Programmable Zynq-7000 SoC设计指南》是一本为设计师提供关于Xilinx Zynq-7000 SoC架构和应用的指南。该指南旨在帮助设计师全面了解并充分利用Xilinx Zynq-7000 SoC的优势。 首先,该指南详细介绍了Zynq-7000 SoC的基本架构和组成部分,包括处理系统(PS)和可编程逻辑(PL)。处理系统基于ARM Cortex-A9处理器,提供了高性能和低功耗的处理能力,而可编程逻辑则提供了高度可定制和可扩展的硬件加速功能。 其次,该指南介绍了如何使用Xilinx Vivado设计套件进行系统设计和开发。Vivado提供了丰富的设计工具和IP核库,帮助设计师快速实现各种功能模块。这些工具和IP核可以帮助设计师完成从系统级设计到RTL开发的整个设计流程。 此外,该指南还讨论了基于Zynq-7000 SoC的嵌入式系统设计的关键问题。例如,如何有效地利用处理系统和可编程逻辑的协同工作,如何优化系统引脚分配和时序约束,以及如何进行系统级的功耗优化等等。 最后,该指南还提供了大量的设计实例和案例分析,帮助设计师理解如何应用Zynq-7000 SoC进行具体的应用开发。这些实例和案例分析涵盖了各种应用领域,包括工业控制、汽车电子、通信系统等。 总之,Xilinx All Programmable Zynq-7000 SoC设计指南通过详细介绍Zynq-7000 SoC的架构和组成部分,以及提供丰富的设计工具和实例,帮助设计师快速掌握并应用Zynq-7000 SoC进行系统设计和开发。这本指南是设计师在使用Zynq-7000 SoC时的重要参考资料。 ### 回答2: 《Xilinx All Programmable Zynq-7000 SoC设计指南》是一本关于Xilinx Zynq-7000 SoC的设计指南。Zynq-7000 SoC是一款Xilinx公司推出的集成了ARM Cortex-A9双核处理器和可编程逻辑的SoC芯片。 首先,指南介绍了Zynq-7000 SoC的基本架构和特性。它解释了SoC芯片中ARM处理器和FPGA可编程逻辑相互协作的方式,并详细说明了它们各自的功能和优势。此外,指南还介绍了Zynq-7000 SoC支持的外设和接口,如UART、SPI、I2C、GPIO等,以及相应的硬件和软件编程方法。 其次,指南详细说明了如何利用Xilinx Vivado工具和SDK进行Zynq-7000 SoC的开发和编程。它包含了从项目创建、设计激活到综合、实现和生成比特流的全过程。指南还介绍了如何将ARM处理器和可编程逻辑之间的数据传输进行优化,以实现最佳性能。 此外,指南还提供了一系列面向不同应用场景的示例设计。这些设计包括图像处理、机器人控制、工业自动化等,可以作为开发者的参考和借鉴。每个示例设计都包含了详细的框图、资源配置和软件代码,帮助开发者更好地理解和应用Zynq-7000 SoC。 最后,指南还介绍了一些与Zynq-7000 SoC相关的开发资源和工具。这些资源包括官方网站、社区论坛、开发板和模块等。开发者可以通过这些资源获取更多的技术支持和学习资料,加速项目的开发和上市时间。 总之,《Xilinx All Programmable Zynq-7000 SoC设计指南》详细介绍了Zynq-7000 SoC的架构、开发方法、示例设计以及相关资源和工具。对于希望了解和应用Zynq-7000 SoC的开发者来说,这本指南是一本非常有价值的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值