历史上的今天

今天是:2024年09月24日(星期二)

正在发生

2020年09月24日 | 在Zynq SoC上实现双核非对称的多进程处理模式

发布者:limm20032003 来源: elecfans关键字:Zynq  SoC  双核非对称  多进程处理模式 手机看文章 扫描二维码
随时随地手机看文章

在我的上一篇博客中我介绍了利用Zynq SoC上的两个ARM Cortex-A9 MPCore处理器执行不同的任务程序,实现非对称的多进程处理模式的概念。我期望你能坐得住因为这篇博客有点长,但是我们会有收获,到最后我们会让我们的AMP系统启动并运行,在我们实现AMP系统启动并运行之前会进行很多步的准备工作,但是这些都非常的简单所以不用担心。


在Zynq SoC上搭建AMP系统的关键是配置好一个启动引导加载程序,第一阶段的加载程序执行完毕后处理器会寻找这个执行文件并加载到内存中。不幸的是我使用的Vivado工具是2014.1版本(因为我最近在搬家没有网络所以不能下载最新的版本),当我们生成FSBL(第一阶段启动加载文件)时这个版本不支持AMP,因此为了能够完成这个例程我将使用赛灵思应用笔记XAPP1079中提供的修改过的FSBL文件和standalone OS文件。


下载好压缩包文件后第一部是将文件解压到你期望的工作目录下,并给文件夹重命名为SRC。这些文件包含了修改过的FSBL和standalone OS文件。我们需要让SDK软件能够找到这些文件,因此下一步是要设置更新一下SDK存储库目录让SDK能够找到这些文件。在SDK软件菜单来点击Xilinx tools,在下拉菜单中选择repositories,创建一个新的存储库文件目录,路径为<你的工作目录>app1079designworksdk_repo,具体如下图所示:

在Zynq SoC上实现双核非对称的多进程处理模式

添加好存储库后下一步就是要生成以下文件:
AMP第一阶段启动引导加载程序
Core 0 的应用程序
Core 1 的应用程序


我们要为每个处理器内核生成BSP(板级支持包)文件:
第一步是创建FSBL,选择file -> new applicaTIon -> project,这样才能够让我们创建一个FSBL工程,实现AMP处理模式,这些步骤和以前没什么区别,但是我们选择Zynq FSBL for AMP 模板,代替以前选择的Zynq FSBL模板.

在Zynq SoC上实现双核非对称的多进程处理模式

接下来我们要为第一个处理器内核创建应用程序,这步同样很简单。以前我们已经做过很多次了,这里要确保选择的是Core 0 和standalone OS并且创建自己的BSP文件。

在Zynq SoC上实现双核非对称的多进程处理模式

一旦我们为内核创建了应用程序,我们需要正确的定义DDR内存的映射地址,因为程序将从这些地址开始执行。我们需要编辑链接脚本,如下图所示显示除了DDR内存的基地址和大小。这一步很重要,如果我们不能正确的为Core 0和 Core 1定义内存地址和大小,在程序执行的过程中就会产生内核间的冲突,出现段地址错误。

在Zynq SoC上实现双核非对称的多进程处理模式

现在我们就可以编写Core 0执行程序的代码了。这部分是AMP 系统的核心,它将从Core 1开始执行程序代码。我们要在应用程序代码中包含以下部分代码。这部分代码禁止了Zynq SoC片上存储的缓存功能,定义了Core 1的起始地址,这个地址是Core 1的内存映射地址范围之内的,具体可以查看先前定义的链接脚本。一旦Core 0 执行Set Event(SEV)命令,就会让Core 1开始执行它负责的程序代码。

在Zynq SoC上实现双核非对称的多进程处理模式

下一步是要为Core 1创建BSP文件,我们将使用修改过的standalone OS模板(standalone_amp),这个模板禁止了PS部分的监听控制单元(SCU)的重复初始化。因此,我们不能允许自动生成BSP文件,这与Core 0的操作是有区别的。还有就是确认在CPU的选择项中选择的是Core 1。

在Zynq SoC上实现双核非对称的多进程处理模式

既然我们已经为Core 1创建了BSP文件,但是在我们编写Core 1执行的应用程序代码之前,我们要修改BSP的一些设置,这一步非常简单,需要在驱动配置对话框中增加一个额外的编译标志---–DUSE_AMP=1,具体操作参照下图:

在Zynq SoC上实现双核非对称的多进程处理模式

 

完成以上这些操作后,我们就可以为Core 1创建应用程序。按照下图所示,确保处理器选择的是Core 1,BSP选择的是前面步骤中刚刚建立的amp_core1_bsp。

在Zynq SoC上实现双核非对称的多进程处理模式

关键字:Zynq  SoC  双核非对称  多进程处理模式 引用地址:在Zynq SoC上实现双核非对称的多进程处理模式

上一篇:ARM、DSP、FPGA的区别是什么?
下一篇:将Zynq SoC上的两个ARM Cortex

推荐阅读

近日,借中国科学院量子信息重点实验室-问天量子-泰克科技三方成立“量子信息联合创新平台”之际,EEWORLD专访了中科院院士、量子信息学科带头人郭光灿,郭光灿院士就量子信息技术的基本现状,国内外量子信息技术的生态环境等方面问题进行了阐述。郭光灿院士郭光灿院士其人郭光灿,中国科学院院士,中国科学技术大学教授,中国科学院量子信息重点实验室主...
下一阶段,请将目光对准车联网和智慧物流。日前,中共中央、国务院印发《交通强国建设纲要》(以下简称“纲要”),纲要中明确了我国不同阶段的交通建设目标,同时也提到了大力发展智慧交通、智慧物流等内容,主要有以下几个值得业界关注的重点:1、加强智能网联汽车研发,形成自主可控完整的产业链;2、加强特种设备研发,包括水下机器人、深潜水设备等;...
Myotest 于近期宣布为 8 月全新发布的新版三星 Galaxy Watch3 智能手表提供跑步分析功能。这项功能让跑步者可在他们的手腕上轻松体验最先进的便携式教练技术。 Myotest 是一家基于生物力学的便携智能教练设备(如智能手表等)的先驱公司和供应商,可帮助跑步者了解他们的跑步技术,并在需要时提供改进建议。Myotest 的软件库可做高精准测量,通过智能手...
//main.c#include"stm8s.h"#include"main.h"#include"tm1638.h"extern volatile u16 captureValue1,captureValue2;//存放俩次捕获的值volatile u8 successFlag=0;//连续俩次成功捕获将该位置一extern volatile u16 numberOfCapture;//捕获次数u32 frequency=0;//频率int main(void){ CLK->CKDIVR=0X00;//主时钟HSI一分频,即为16MHz GPIO_Init(G...

史海拾趣

问答坊 | AI 解惑

工程师必看:做完项目之后的九问!

及时的自我总结,从技术上讲,每作完一个项目/电路设计,或者项目时间比较长,就在一段工作时间之后,好好小结一下最近的工作成绩,我觉得这是很有必要的。根据我个人的体会,可以参照下面的几点去总结。 另外我还想说,项目的完成,是公司的获得, ...…

查看全部问答∨

push方法返回一个或多个错误行

我在做RDA时,Pull一张表到本地是没有问题的,而且在本地修改数据也使没 有问题的(我在模拟器的查询分析器里面可以看到)。但是当我把修改后的表Push 回PC机上的数据库的时候,出现错误。     Push方法返回一个或多个错误行。 ...…

查看全部问答∨

请教下关于 WINCE的电源TIMEOUT问题。(重启后不关背光设置无效)

请问为什么我在电源管理那设置了电池和AC 为“从不”在设置完后确实不会关背光,但是一但重启机器后还是一分钟后自动关闭背光,在电源管理上可以看见那两项确实是显示“从不”。我用RegQueryValueEx 对ACUserIdle以及BattUserIdle进行读取,得到的 ...…

查看全部问答∨

服务器怎么向手机wince mobile发送MSMQ消息呢?

智能手机WINCE mobile与服务器SERVER通过GPRS移动网络连接,数据交换用什么方法比较省事?MSMQ?TCP/IP?或其它? 如果使用MSMQ,SERVER怎么向手机wince mobile发送消息呢?手机上的消息队列名该如何确定?…

查看全部问答∨

各种线路板销售

    远航星辉公司多年来专业经营电路板加工,并积极为客户提供电路板设计,电路板焊接等配套服务.阿里巴巴诚信通质量认证,有意者请与我们联系,为你们服务!! 网    址: http://yhxhbjdzgs.cn.alibaba.com/ 联系方式: 程龙 ...…

查看全部问答∨

CE 调试问题

各位大侠好:     小弟又有事情求教了。     无论是在PB中还是在eVC ++中,都有远程调试的功能。问:怎么样才可以建立远程连接呢?         我尝试过 用 ActiveSync,我想应该是用同步方式连接吧,但 ...…

查看全部问答∨

TAIHU PPC405EP VXWORKS 开发请教

我新接触POWERPC,找我朋友借了一块PPC405EP TAIHU的开发板,他给我的资料都是UBOOT和LINUX的,我现在想用VXWORKS,可是在Tornado 2.2下没找到支持PPC405EP的BSP,请问谁有相关资料或者SDK发给我一份,我学习下,再次感谢!…

查看全部问答∨

linux设备驱动中,为什么要注册混杂型字符设备驱动

linux设备驱动中,为什么要注册混杂型字符设备驱动????????…

查看全部问答∨

BeagleBone外围电路PCB制版归来,有图有真相,预订从速!

板子已经制版回来了,废话少说,有图有真相! 正面: 反面: 局部特写:…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved