|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2025-2-5 14:32 编辑
3 F* @) b4 B5 Z& w* G; R
' f- Y# I0 w" C% G; w“非对称AMP”双系统0 a5 u% _) b$ F" ]& m0 _: Q
AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。2 z- a. ?! G6 W& G
图 1 RK3562J AMP异构多核框架示意图 : L0 a) p0 J9 N ~4 N( L
“非对称AMP”对工业有何意义5 C& T* U$ M# S" Y; ^$ ~
“系统实时性”更强
! T w0 F. W8 \& F( ^- I4 {2 ^* s非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。% Q5 O& _+ \9 N9 f9 L; L C
“系统稳定性”更高
0 B. W. m* }+ S9 X; h$ W非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。
* M$ L: c- T$ q/ z3 d, Z1 z! N“系统硬件成本”更低
( R. B, X) c/ t& y非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。( `* X, u8 P. j0 k9 e- c4 ^
图 2 5 t3 }* Z8 B/ |- J+ X; [( I5 C
“非对称AMP”双系统的应用领域( j( X9 h+ s2 \3 H5 t. k" O
随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。9 c! x6 }8 R( d( r& O
图 3 7 b% A j: E3 J# k2 i9 F
RK3562J非对称AMP开发案例/ E( z% o3 L0 Y9 I& i+ L( v+ f, y
本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。5 r2 V- R% p/ o: L, ~* Y) C3 Z
Windows开发环境:Windows 7 64bit、Windows 10 64bit
$ G. s$ p' T; {2 t. XLinux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit
; I: l& F8 s4 w8 G0 G$ j' MU-Boot:U-Boot-2017.09- x/ I8 X9 s- g/ w9 D' H* d
Kernel:Linux-5.10.1981 g& O' v0 |3 I. V
LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)
( Z! N; @) S4 u硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)9 {$ ~. {! V0 Q- d2 H% {& H1 I
为了简化描述,本文仅摘录部分方案功能描述与测试结果。
) x6 f" _4 R% q2 _0 x案例说明
) q* N& s/ U5 r* h/ q案例功能:; l0 o7 e% q6 U% q E: t# \
(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
6 M$ ?; e) I7 |4 q( T(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。/ H1 E3 O7 ?9 M1 s( `. t$ h
案例程序流程图如下所示:
8 z5 Q( @1 q( o图 4 案例演示
; |) @: ^' M# a; N% _下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。$ V- z9 {; s1 j6 h" k9 J* k
参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。
+ U' ?, o; y; C, k4 V图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。
+ E/ N9 n' B/ ^2 ITarget# ./rpmsg_echo -n 8
. D- z6 H- K/ V! D4 q5 s. t, n图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!
, l6 t H; [8 s$ P; j( n$ R- O6 R |
|