EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
“非对称AMP”双系统( F; t; n* i, t0 X
AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。7 u- h' C1 U2 ^8 n& i/ w( ?/ Y
" k2 t G5 T) ?) O! h& i; t" q& p
图 1 RK3562J AMP异构多核框架示意图 . b! p& B8 @1 h/ i0 _/ y
“非对称AMP”对工业有何意义
0 L6 K _! m0 Q9 y# M- z9 J2 v“系统实时性”更强6 u& g# q7 R$ R6 M5 W( m
非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。
( ~$ ?( i. b9 a0 n1 P" R) w' e$ |8 N“系统稳定性”更高1 s# \' r3 W2 ^& J4 x
非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。5 O0 s9 U, t5 i9 s0 i/ ]! P" _1 B
“系统硬件成本”更低
5 \& N( f. D+ W$ t+ _& o ]5 G- J$ H非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。
' {: \5 B8 Q5 w" i ; e5 i/ k& @5 Y3 i/ q3 G
图 2
2 _1 F$ Y- t# Y- ]' ]. r* D& l “非对称AMP”双系统的应用领域& Y* v" q2 Q" V( a3 @7 @( }
随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。
' K( Z. \3 p7 b: B9 R9 |' W![]()
! N3 H& {) I, d) i# m% n图 3
. A& p1 c/ K& w& h. _; }- ? RK3562J非对称AMP开发案例
0 s& v/ u8 G, s3 p本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。
- m2 Z6 \' S( C6 _9 [# Y# }Windows开发环境:Windows 7 64bit、Windows 10 64bit
: Z3 O o( d+ h u2 d& X3 _- oLinux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit8 z1 k' H5 X2 M1 Q
U-Boot:U-Boot-2017.09& w! b9 B# C8 G, N1 R b/ _3 M8 A
Kernel:Linux-5.10.1988 t8 L' ~6 p3 [2 k6 @! w3 {$ d8 i
LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)
. }. l$ c0 \+ A# r硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)
u {2 Y2 I. N6 j# r$ t为了简化描述,本文仅摘录部分方案功能描述与测试结果。
, h j8 g, v5 Y* p9 t4 a案例说明2 _1 [6 m4 \8 p( _
案例功能:9 r( a7 `+ ^7 d8 p% w9 |! s) y
(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
M9 s+ `$ g a) K2 k+ ^; H/ K(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。/ O7 n5 L& x! Z- u
案例程序流程图如下所示:7 C" P0 N) ^/ I9 `. X! Q9 Z# z6 T* |
% H* O1 ]- k, _- Z
图 4 案例演示
, G3 y& O8 _5 _* t5 H/ ]/ d% |( r下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。
2 g4 @2 {. p- f( D参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。: n, s& Z! p0 y) v; |' T
![]()
* U z6 N1 H c图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。
. V7 v5 {# f; P0 E& |9 E3 OTarget# ./rpmsg_echo -n 8
/ X' m6 G$ _) t5 U; F: t( L$ v) d3 _![]()
% l) }6 j) K" k+ G( M1 l( z9 e图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!9 @4 c; s! D' K9 t# N- v
|