EDA365电子论坛网

标题: “双系统”出炉!瑞芯微RK3562J非对称AMP:Linux+RTOS/裸机 [打印本页]

作者: Tronlong123    时间: 2024-11-25 15:12
标题: “双系统”出炉!瑞芯微RK3562J非对称AMP:Linux+RTOS/裸机
“非对称AMP”双系统
' D$ ~9 ^8 S& Z9 i% p5 |AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。/ t5 Z& C7 c. t% C- R  |7 g/ g1 G

4 T/ O( z! p2 \4 k5 s$ [
图 1 RK3562J AMP异构多核框架示意图
" u7 f- g, f2 c! ^, ]5 C" G
“非对称AMP”对工业有何意义8 d+ S9 j' u# d
“系统实时性”更强
8 b7 T) k+ w- J非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。8 f9 H& s. h' k
“系统稳定性”更高& h' x0 R- G0 X& X1 c  Q: ~; u
非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。
. i! s9 C/ @& G. Y+ _/ x& ?“系统硬件成本”更低( u6 \/ ]5 t' z2 f, ~
非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。
; P# s0 W: C$ K- d( L  r' ~. N

$ k2 q% x: U/ \/ `: _; I6 n
图 2

5 V) O' x% p, B( B! t. X9 s
“非对称AMP”双系统的应用领域
' d; B0 a( c: r6 _  s随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。+ ^+ r) c% t. L4 h( ^" ^
0 w, x4 A7 U. z% w5 S
图 3

$ ]" H3 C9 I% }5 S9 p
RK3562J非对称AMP开发案例2 }0 ?' m, c/ R" [
本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。3 V; L+ E/ ]7 H& s. I3 I4 _# t; [
Windows开发环境:Windows 7 64bit、Windows 10 64bit% K$ R& m- a: L+ [
Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit
/ l! G( y! V4 SU-Boot:U-Boot-2017.09/ [$ }+ Q+ a8 T$ Z: L6 N( [7 A3 E" _
Kernel:Linux-5.10.198
% A$ k8 S4 e8 P) l5 N' L  |LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)- _' N- h' j# L' B( q7 @8 C
硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)
0 q  S7 A. F1 G8 O/ z为了简化描述,本文仅摘录部分方案功能描述与测试结果。! k& e4 L+ B$ J! r
案例说明
0 d; o0 V) N! a, h. v案例功能:
( k) C; O1 s* o9 {, c2 |* u(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(MCU)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
7 j) e4 m* i/ _(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
7 s. w/ \1 i0 u+ k1 Y8 @案例程序流程图如下所示:" X; r0 a8 S! ]0 Q. k0 {7 a

! s2 `+ E% L0 j  k3 k/ U! Z
图 4
案例演示
, F( g5 @1 {0 l* }3 t4 a& U下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。7 _  ^/ O+ _* d* B( s3 _6 w
参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。; b7 ^8 K+ j: ?, v
6 ?* B- P& v1 y% B1 ^
图 5
执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。. s" }( f8 m) {% D* l% ^( H9 |
Target# ./rpmsg_echo -n 86 o0 Z( _. _* Y
6 O# r, e' r, i1 v% ^
图 6
查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!. K5 t8 ?, j4 h3 Q5 G1 `

作者: Getaway    时间: 2024-11-25 17:30
案例程序流程图很详细




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2