|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2025-2-5 14:32 编辑
3 i8 J$ g$ k+ }2 r! C
1 O& N2 g- ^3 T“非对称AMP”双系统
. p _* w8 a& |: p% ~, Y9 JAMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。& T" l O3 q6 X2 T0 p; _
图 1 RK3562J AMP异构多核框架示意图
: g# }( Q. m- G0 \- k+ e6 L“非对称AMP”对工业有何意义% f" x& b) j u- |+ {% ]
“系统实时性”更强% a/ o# I7 \, R& [' x5 m
非对称AMP架构拥有更强的系统实时性,可使用固定的核心进行实时任务处理。在工业自动化控制领域中,非对称AMP架构可以兼顾复杂功能与实时性需求。AMP架构提高了系统实时性、执行效率、计算能力及响应速度。
' V: l X4 G# o% V1 P# J3 Z( ~“系统稳定性”更高1 J* D, P/ z. G4 B" k# b4 K
非对称AMP架构拥有更高的系统稳定性,核心之间独立且无需频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,从而增强系统稳定性,减少崩溃风险,保障数据完整。5 A: s( N% f. P; x) x
“系统硬件成本”更低
& l" v5 ]' f0 e3 g非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多任务,无需额外硬件支持,高效且经济。# T. A, h" {3 O6 X( |" \3 H5 t6 I5 }
图 2 ! |+ n! @2 L7 D1 u3 k
“非对称AMP”双系统的应用领域8 p+ E9 k* j) C5 M; z4 l! a6 Y
随着对嵌入式系统要求的不断提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。, R& R$ v. V/ e7 d4 h8 d
图 3 ! p; g* m2 a; V5 H/ ?3 p; m
RK3562J非对称AMP开发案例
0 F% Y- K) G& E: W' z! C0 V- [本文主要介绍基于RK3562J的非对称AMP开发案例,适用开发环境如下。2 @# j! @) Z- I7 Z
Windows开发环境:Windows 7 64bit、Windows 10 64bit$ y6 F' F4 [% i! k4 E! V4 M
Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit; S7 P, r" j8 G! d5 e3 m$ l9 K
U-Boot:U-Boot-2017.09
+ N2 a. i3 J; U5 U( B* yKernel:Linux-5.10.198. x4 W m2 l6 b6 [- S& ?; z/ e
LinuxSDK:LinuxSDK-[版本号](基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220), O( E, f# M/ S& i
硬件平台:创龙科技RK3562J工业评估板(TL3562-EVM)4 d& {# C: g; b3 C( m4 V
为了简化描述,本文仅摘录部分方案功能描述与测试结果。3 f% Q( v" x( g0 M% X' o
案例说明
( [7 S: r0 V2 i4 @6 E/ j+ |案例功能:; x' d, Y4 w( t% Y* u6 C
(1)Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序;Cortex-M0(mcu)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
1 h N- O: _! o# `3 v" Q9 ^5 h(2)Cortex-A53(CPU0、CPU1、CPU2)核心运行Linux系统与rpmsg_echo应用程序;Cortex-A53(CPU3)核心运行RT-Thread或Baremetal程序,实现Linux端的rpmsg数据的接收与发送功能。
$ c; W2 C3 j; v1 D/ m4 N4 _, v案例程序流程图如下所示:2 [$ i) ^( o. R2 _
图 4 案例演示
: E1 M3 h& s0 W# I, y: {4 z4 v" K下文以Cortex-A53(CPU0、CPU1、CPU2、CPU3)核心运行Linux系统与rpmsg_echo应用程序,Cortex-M0(MCU)核心运行Baremetal程序为例进行演示。
1 i% s( Y8 s Q' B4 D参考产品资料,固化案例的amp.img镜像至评估板并替换案例的评估板系统内核镜像。U-Boot启动后,将加载运行amp.img镜像,Baremetal程序的串口终端将打印程序运行信息。: S* { E' z3 d* e& c) Z
图 5 执行如下命令运行Linux应用程序rpmsg_echo,发送8个rpmsg数据包至运行Baremetal程序的Cortex-M0核心,当Cortex-M0核心每收到1个rpmsg数据包就会将数据包发送回Linux端。rpmsg数据包内容为"hello there x!"(x是rpmsg数据包序号,每发送一次加1)。
2 t' z3 H+ p+ D6 Y. s5 }Target# ./rpmsg_echo -n 8
! m2 i. ~4 w# h: L图 6 查看更多RK3562J相关的案例演示,各位工程师可以通过公众号(Tronlong创龙科技)下载,快来试试吧!; `; ?5 E) p# y6 n: D
|
|