“国产双系统”出炉!复旦微FMQL20SM非对称AMP:Linux + 裸机 点击:9 | 回复:0



创龙科技

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:27帖 | 0回
  • 年度积分:9
  • 历史总积分:92
  • 注册:2024年8月14日
发表于:2025-02-27 15:21:50
楼主

“非对称AMP”双系统是什么

AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统是指多个核心相对独立运行不同的操作系统或裸机应用程序,如Linux + RTOS/裸机,但需一个主核心来控制整个系统以及其它从核心。每个处理器核心相互隔离,拥有属于自己的内存,既可各自独立运行不同的任务,又可多个核心之间进行核间通信。


图 1 FMQL20SM AMP异构多核框架示意图


“非对称 AMP” 对工业的重大意义

更强“系统实时性”

在工业自动化控制的复杂场景中,对于系统实时性的要求极高。非对称AMP架构凭借其独特优势,能够运用固定的核心来处理实时任务,很好兼顾复杂功能与实时性需求。AMP架构全面提升了系统实时性、执行效率、计算能力以及响应速度,让工业生产更加精准、高效。

更高“系统稳定性”

非对称AMP架构在稳定性方面表现卓越。无需多个分立CPU之间频繁交互数据,每个处理器核心拥有属于自己的内存,核心之间互不干扰。开发者可灵活分配任务或指定核心间通信,大大增强了系统稳定性,有效减少崩溃风险,全方位保障数据的完整性。

更低“系统硬件成本”

成本控制一直是工业领域关注的重点。非对称AMP架构通过优化内部通信,仅需一套硬件电路即可实现复杂功能,显著降低系统硬件成本。其各核心能运行不同操作系统,并行处理多个任务,无需额外硬件支持,真正做到了高效且经济。相比之下,采用分立CPU方案则需要两套硬件电路(CPU/ROM/RAM/PMIC),系统硬件成本成倍增加。


图 2


“非对称AMP”双系统的应用领域

随着嵌入式系统的发展,对其性能和功能的要求日益提高,非对称AMP架构如今已成为一种新选择,主要应用于工业领域,如电力DTU、数据采集器、继电保护设备、运动控制器、驱控一体控制器等。


图 3


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


图 4

执行如下命令,设置CPU3核运行裸机程序。

Target# ./amp 3 0x19000000


图 5

执行如下命令,运行Linux端AMP应用程序,点亮或熄灭评估底板PS端LED1。

Target# ./led 1 on

Target# ./led 1 off


图 6


基于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格式)。


图 7

然后,在插入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


图 8

程序运行后,您就能看到评估底板PS端LED1每隔0.5s闪烁,是不是很神奇?

如果各位工程师想要了解更多 FMQL20SM 相关的案例演示,可以通过公众号(Tronlong创龙科技)查看,快来探索吧!



热门招聘
相关主题

官方公众号

智造工程师