|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2025-2-5 14:32 编辑 ' W5 U# A% i* h5 R- j$ X
- \/ w. Y/ s8 J3 T7 G L1 S“非对称AMP”双系统
- j: _0 a) k, ]+ B! u4 w4 j2 }AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。! n1 T _5 |8 r
图 1 RK3562J AMP异构多核框架示意图
4 l- h, [' F$ \“非对称AMP”对工业有何意义- N# d$ q+ _, m" n+ ?5 Y8 q
“系统实时性”更强
- ~" ]2 d6 ]7 z8 p- J+ @7 Z9 a3 u非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。" q$ z; ?/ I" S" u! u1 n% j4 b
“系统稳定性”更高
& Z& f6 {) |6 u8 y6 g& |非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。
( Y6 j% g" Z5 {, U4 E7 u“系统硬件成本”更低
; u9 V; {9 h- E @非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。6 g7 G# J \, Y) }) R
图 2 5 ]2 X$ ` E0 W+ T
“非对称AMP”双系统的应用领域
" `4 v, Q7 i: W8 w6 L& l7 t& T随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。
$ M. D" h: z6 A+ i6 r图 3 ; ?# g2 T' i+ {2 u9 ]- M C+ ^; r
RK3562J非对称AMP开发案例
# r2 A8 x$ Q/ W1 `0 \本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。 m9 b( N5 V) W; ^1 r, k9 y
Windows开发环境:Windows 7 64bit、Windows 10 64bit. \$ C; K% g# ?* T2 N
Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit
+ p9 ~5 @2 M }! I: wU-Boot:U-Boot-2017.09$ c* j" U. }! q7 j9 {! H
Kernel:Linux-5.10.1982 b' N2 v( V8 X9 F, f3 B# h4 S
LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)& R+ j. N1 G& Z5 ~/ m' h- [" [3 m
硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)# n- Y l: f1 u5 [. J
为了简化描述,本文仅摘录部分方案功能描述与测试结果。& @* }& u% ~9 D C; K2 g0 {1 l
案例说明
2 @: e$ `! h. W' D! R' R案例功能:
0 ?9 [2 X; J8 P3 B, Y2 \, q5 f9 P$ R(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
5 W% i/ d+ R$ d1 F2 `( \(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
1 r6 G* F1 N( w- s# J案例程序流程图如下所示:
]" v9 B% P5 K; J1 v4 ^& m1 K图 4 案例演示8 k6 _2 e2 o6 S" B6 b9 n
下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。8 ~' H! ^$ E% b
参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。& M8 t. X: e0 t( B
图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。/ S* w% H7 O4 h& n; s1 W* A
Target# ./rpmsg_echo -n 84 O& V4 g! N, R
图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!
1 [+ D6 v' H! `2 n% @9 V/ ^, X3 _ |
|