EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
“非对称AMP”双系统
0 [, i4 ?. B% k; ?% }/ t- C5 q+ tAMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。
# ?2 ^: }! \2 ?) K+ E; c/ o![]()
5 B, F0 J2 L, X; M4 W2 T7 W1 \; B* ?& w图 1 RK3562J AMP异构多核框架示意图 " }% ^$ ^; R( ?6 K. b" H
“非对称AMP”对工业有何意义" d' i( V( H+ t2 [
“系统实时性”更强) @) e8 L& m1 D
非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。2 m1 I2 u7 d: g9 V4 q
“系统稳定性”更高1 I# R7 c x' k" b1 }
非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。8 _" X- l! @" l# j4 C! f; Q
“系统硬件成本”更低
6 w- u E5 e' H+ @2 {. V非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。/ | N4 ^: L' g" i
![]()
# F6 }0 I" u. a2 G2 i K图 2 4 [- ]. d' \) `9 g, g/ [* O; L6 _
“非对称AMP”双系统的应用领域; E' }( W9 h8 A
随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。3 ?2 ]$ Y& X: ~. y# g: L! k
![]()
* l' f4 Q# G4 }- }8 t0 z4 w5 E图 3
5 g! m$ h& b- |: _+ a& L$ z RK3562J非对称AMP开发案例) m+ [) a& E6 @
本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。
% W0 W1 z+ E0 B" j; SWindows开发环境:Windows 7 64bit、Windows 10 64bit
) [" U4 r# {; A1 e( n' y3 jLinux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit2 i- @8 i% K; y! `: \+ Y
U-Boot:U-Boot-2017.09
. i! N. H: \/ O" u! AKernel:Linux-5.10.1986 q3 D$ F. S) B0 |/ `; x
LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)9 h: e5 \2 Y. u* |
硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)
! K7 b, e; r. Z0 T- b1 y8 l, c为了简化描述,本文仅摘录部分方案功能描述与测试结果。
$ \. Y. V5 t& o& E( u案例说明
. X+ s i- L8 B( G* |& n1 z7 O4 \1 l$ y) H案例功能:
9 {2 B. T7 g3 F, h9 ~3 v1 Z9 P(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
+ V7 v: h2 ^5 s1 C(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。7 `/ H) Y" i; w9 A0 ~. J/ e0 c2 d
案例程序流程图如下所示:
1 O" L- k2 v7 a; n& i+ v # u8 @& G3 R A( U/ Z5 y+ s
图 4 案例演示
# ], z$ `6 B; ?下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。
! y2 e( U& Z$ K参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。) S$ |* D) F2 h% M+ y
1 ?+ n! t; m+ ]5 [4 E/ a
图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。
3 A. b% X& m9 Y" p" k: MTarget# ./rpmsg_echo -n 8
8 t8 @, T( ~' m9 k8 S5 K* p7 r![]()
# r9 i- T" A. `0 x2 ~图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!- r, p4 b1 v5 \) x) f- X
|