“非对称AMP”双系统是什么
AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。
“非对称 AMP” 对工业的重大意义
更强“系统实时性”
在工业自动化控制的复杂场景中,对于系统实时性的要求极高。非对称AMP架构凭借其独特优势,能够运用固定的核心来处理实时任务,很好兼顾复杂功能与实时性需求。AMP架构全面提升了系统实时性、执行效率、计算能力以及响应速度,让工业生产更加精准、高效。
更高“系统稳定性”
非对称AMP架构在稳定性方面表现卓越。无需多个分立CPU之间频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,大大增强了系统稳定性,有效减少崩溃风险,全方位保障数据的完整性。
更低“系统硬件成本”
成本控制一直是工业领域关注的重点。非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多个任务,无需额外硬件支持,真正做到了高效且经济。相比之下,采用分立CPU方案则需要两套硬件电路(CPU/ROM/RAM/PMIC),系统硬件成本成倍增加。
“非对称AMP”双系统的应用领域
随着嵌入式系统的发展,对其性能和功能的要求日益提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如电力DTU、数据采集器、继电保护设备、运动控制器、驱控一体控制器等。
FMQL20S400M 非对称AMP开发案例
接下来,为大家详细介绍基于FMQL20S400M异构多核SoC处理器PS端的AMP通信案例,适用开发环境如下。
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:Ubuntu 16.04.5 64bit
虚拟机:VMware16.2.5
PL端开发环境:Procise 2023.1
LinuxSDK:FMQL-Linux-SDK-Prj-20230801
U-Boot:U-Boot-2018.07
Kernel:Linux-4.14.55
硬件平台:创龙科技TLFM20S-EVM工业评估板
为了简化描述,本文仅摘录部分方案功能描述与测试结果。
基于Linux启动AMP裸机程序
案例功能
本案例主要实现如下的功能:
(1)配置CPU0、CPU1、CPU2运行Linux系统,配置CPU3运行裸机程序。
(2)运行Linux系统的CPU核功能为:初始化系统;控制运行裸机程序的CPU核启动;与运行裸机程序的CPU核通信,控制LED亮灭。
(3)运行裸机程序的CPU核功能为:与Linux系统通信;接收Linux系统的控制命令,并根据命令控制LED亮灭。
案例演示
首先,请将案例的可执行程序拷贝至评估板文件系统任意目录下,参考产品资料进行环境配置,完成后,执行以下命令,加载裸机程序至PS端DDR地址0x19000000。
备注:我司提供的Linux系统已在PS端DDR内存中分配AMP裸机程序的内存空间,地址范围为0x1900 0000 ~ 0x19FF FFFF,容量为16MByte。
Target# ./filetomem ./amp_led_ctrl.bin 0x19000000
执行如下命令,设置CPU3核运行裸机程序。
Target# ./amp 3 0x19000000
执行如下命令,运行Linux端AMP应用程序,点亮或熄灭评估底板PS端LED1。
Target# ./led 1 on
Target# ./led 1 off
基于U-Boot启动AMP裸机程序
案例功能
本案例主要实现如下的功能:
(1)CPU0启动U-Boot,基于U-Boot配置CPU1/CPU2/CPU3其中一个核心运行裸机程序。
(2)CPU0功能为:初始化系统,控制运行裸机程序的CPU核启动。
(3)运行裸机程序的CPU核功能为:控制LED亮灭。
案例演示
首先,请将Linux系统启动卡通过读卡器插至PC机USB端口,并将案例的amp_led_flash.bin文件拷贝至Linux系统启动卡BOOT分区(FAT32格式)。
然后,在插入Linux系统启动卡后,启动评估板,进入U-Boot命令行,执行如下命令。加载Linux系统启动卡中的裸机程序至DDR地址0x19000000,并设置CPU3运行裸机程序。
U-Boot> dcache off
U-Boot> fatload mmc 0 0x19000000 /amp_led_flash.bin
U-Boot> bootamp 3 0x19000000
程序运行后,您就能看到评估底板PS端LED1每隔0.5s闪烁,是不是很神奇?
如果各位工程师想要了解更多 FMQL20SM 相关的案例演示,可以通过公众号(Tronlong创龙科技)查看,快来探索吧!