本文主要是介绍ZYNQ双核运行简例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、AMP运行模式
从软件的角度来看,多核处理器的运行模式有三种:
AMP(非对称多进程):多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序,但是有一个主要核心,用来控制整个系统以及其它从核心。
SMP(对称多进程):一个操作系统同等的管理各个内核,例如PC机。
BMP(受约束多进程):与SMP类似,但开发者可以指定将某个任务仅在某个指定内核上执行
默认情况下,ZYNQ仅运行一个CPU,这里主要研究AMP模式下,两个CPU同时运行。
本次实验目的:
让zynq的两个核心跑不同的程序:
1、CPU0用UART打印消息。
2、CPU1跑流水灯的程序。
二、创建工程
1、创建并设置bd文件
根据自己的板子创建一个zynq工程、创建一个bd文件,添加zynq的核。双击打开、选中UART和SD卡:
再根据自己板子选择是否选择EMIO(如果LED连接到PL端则需要选择)和EMIO所需要的位数。
创建完成之后:
1、右击原理图,生成输出文件(Create HDL Wrapper)
2、右击原理图,生成顶层文件(Create Output Products…)
添加约束文件:
set_property PACKAGE_PIN N20 [get_ports {GPIO_0_tri_io[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_tri_io[0]}]set_property PACKAGE_PIN P20 [get_ports {GPIO_0_tri_io[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_tri_io[1]}]set_property PACKAGE_PIN P19 [get_ports {GPIO_0_tri_io[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_tri_io[2]}]set_property PACKAGE_PIN Y19 [get_ports {GPIO_0_tri_io[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {GPIO_0_tri_io[3]}]set_property PACKAGE_PIN V12 [get_ports {GPIO_0_tri_io[
这篇关于ZYNQ双核运行简例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!