|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
“非对称AMP”双系统
( y; Y& u5 O, [# aAMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。
3 D1 z2 C* u2 j1 v/ m) [ ( @8 B! J) b, k) f. b& K
图 1 RK3562J AMP异构多核框架示意图 $ Z, v/ L8 m H. P) ]
“非对称AMP”对工业有何意义
5 M" Y3 B# g4 L4 V( p“系统实时性”更强& Y1 M* H8 s( k o% ^# a q
非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。" }3 o( |, p, Z9 K; F" u3 O
“系统稳定性”更高
8 i+ v, M/ s4 |6 u# e. R非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。' K+ q9 ^! L- z% L5 E
“系统硬件成本”更低
0 E! Y4 w& T5 M) ~非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。
B9 i+ v" L W1 ?0 |! j' l1 l + N* Z( E' L' |; I7 p
图 2 $ q6 C+ I/ V5 m; ]
“非对称AMP”双系统的应用领域
+ ]& c& p0 h- R2 p( u随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。
1 [4 h3 Y5 |4 L! a0 M' p. e![]()
6 |% K& G3 A: }" H3 R图 3 5 y- l, [& l/ V2 U
RK3562J非对称AMP开发案例3 Y' @1 [" N" u4 I
本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。. x/ A: h9 l- R& S
Windows开发环境:Windows 7 64bit、Windows 10 64bit+ n' ^4 u3 j0 |, N+ {
Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit) q |: B; G, v0 U0 i
U-Boot:U-Boot-2017.09
/ v1 a" w& D2 e! J" a+ pKernel:Linux-5.10.198( }8 @5 d6 [: x# H6 Y1 K
LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)
. m/ S3 v$ f6 u$ _6 Q5 R( D硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)" N4 U! `( K, ^3 `* N, N
为了简化描述,本文仅摘录部分方案功能描述与测试结果。
' t- l" ]6 @0 K a! C( Y案例说明% ]- E4 r! i% F* P
案例功能:
9 i! H: ?2 R* u. K8 h# h(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。8 D# ^- b$ t A: i
(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。6 z; H5 U" F* y# X* v; a/ v# z
案例程序流程图如下所示:
9 E0 _% C. ?4 k R6 `+ U+ m, p
图 4 案例演示
! h( M. `, a) H8 z3 }" g0 t下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。4 b9 P' j+ b0 ~: v" d
参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。4 q' _- s# {: a* ?1 }
8 e, s, H3 K3 m% I: F3 _% x
图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。4 [/ h) Q, p* Z6 @5 [3 s/ K3 U% w
Target# ./rpmsg_echo -n 8! _8 ^5 t3 z# A5 \# s1 T) ?
5 J. @8 ]. Z* H
图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!
8 Y( D( ?6 L1 V2 [/ p |
|