|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2025-2-5 14:32 编辑 ' c5 ^) h: L; W: l* b/ A, I
" [' o, V, a0 ]: Z7 N
“非对称AMP”双系统
' q. D. _& m3 P0 rAMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。
. t' Y4 |* b2 Q8 |! h图 1 RK3562J AMP异构多核框架示意图
+ M1 Q. ^7 x& f) s/ T/ `- m“非对称AMP”对工业有何意义8 H0 B5 U7 F, m3 N O
“系统实时性”更强
% t; }, K$ @ O. c2 v5 Q+ ?非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。
/ |6 j4 i( `2 |# z- b. Z6 K“系统稳定性”更高8 g0 b9 V o6 `) ~' S
非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。) f/ z; W O# P( a5 H9 o: [
“系统硬件成本”更低: N. x7 B$ i4 }. f# A. _ e
非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。/ M; X3 k5 o, I! ?5 h4 g
图 2
7 l% w- r: l' m; r! h“非对称AMP”双系统的应用领域
& F q" x* K2 I2 p6 X随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。
" h2 y* c. U0 ~' m A! E# E图 3 - S1 E1 i6 ]0 @ c& j1 c$ J
RK3562J非对称AMP开发案例1 \+ ]" h7 E3 l, W4 N
本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。
2 c( C+ S+ Y9 h/ lWindows开发环境:Windows 7 64bit、Windows 10 64bit
# G9 l5 y3 m7 o" A4 F |( a0 B/ GLinux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit |9 {$ S R% r! \4 _4 {0 ]. u5 X
U-Boot:U-Boot-2017.09
) V, Y, B1 K7 ^* f( b% TKernel:Linux-5.10.198
9 f D/ Q' x4 VLinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)
% |( ^! O9 a0 A4 N7 D9 ^; J硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)3 C& X! \+ D9 C
为了简化描述,本文仅摘录部分方案功能描述与测试结果。+ Z4 h8 i! {: [, k4 Q
案例说明9 Y; d" l* s, v. N- D
案例功能:
% u0 q& J0 n- B6 E, Y(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。) u0 c: Q' C5 N( v) R
(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
6 ^' R& E+ o+ {/ [: C- k( Y/ q案例程序流程图如下所示:& R1 K5 b. F {+ ?6 d
图 4 案例演示
( }$ Q" i) \& k2 T1 G4 @. v下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。
8 y7 E; h* ~% w v& e参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。
4 x/ D5 z; S+ p2 {$ Y, R6 c图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。
) E2 i+ m' c* ^* e* `5 S) l( HTarget# ./rpmsg_echo -n 8' J1 U+ u7 H2 M8 r2 W# r' F* M
图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!
3 Y3 R- a! |+ K* i# @7 A2 C |
|