Vivado 提高笔记2—SOC—快速入门(Zynq 7000系列)

双CPU工作

 建立工程

为双CPU分别建立Board Support Package

Standalone_bsp_cpu0

Standalone_bsp_cpu1

分别在package工程上建立应用工程

Hello_cpu0

Hello_cpu1

双处理器同时在线调试DEBUG

选择配置选项Run >debug Configuration的Device Initialization选项卡的Reset Type选项,将Reset Entire System改为Reset Processor Only。

注:SDK2013.4下,在不烧写PL配置程序下可直接下载程序,cpu0,cpu1按先后顺序在线运行后,不需任何唤醒设置,即可同时运行。

SDK2013.4同时调试。

Help中搜索Multi-Processor,查看多核处理器的调试,如图所示。

Step1:选择配置。

Step2:配置软件。选择处理器,分别勾选各自的下载程序,点击Debug即开始调试。

SDK2014.4同时调试,可能cpu1的运行必须由cpu0激活。

在地址分配,或根据程序大小分配:

从应用工程下的lscript.ld文件,更改hello_cpu0与hello_cpu1的DDR地址,其它不变。

cpu0

ps7_ddr_0_S_AXI_BASEADDR    base address(0x00100000)   size(0x00100000)

cpu1

ps7_ddr_0_S_AXI_BASEADDR    base address(0x00200000)   size(0x00100000)

Downloading Program -- F:/zynq_work/zynq_test/AXI_project_1/project_1.sdk/hello_cpu1/Debug/hello_cpu1.elf

section, .text: 0x00200000-0x0020170b

section, .init: 0x0020170c-0x00201723

section, .fini: 0x00201724-0x0020173b

在cpu0中添加激活程序。

第一步:Disable Cache on OCM

使用函数:  Xil_SetTlbAttributes(0xFFFF0000,0x14de2);   

第二步:载入CPU1程序的存储地址到CPU1处理器的入口地址:

  *(unsigned int*)(0xFFFFFFF0) = (unsigned int) 0x200000;

第三步:cpu0发出唤醒命令,唤醒cpu1

     print("CPU0: sending the SEV to wake up CPU1\n\r

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值