查看: 69|回复: 0

[经验] “国产双系统”出炉!复旦微FMQL20SM非对称AMP:Linux + 裸机

[复制链接]
  • TA的每日心情
    无聊
    2021-9-1 13:41
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 3 天前 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 陈工-创龙科技 于 2025-1-21 14:55 编辑

    “非对称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创龙科技)查看,快来探索吧!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条



    手机版|小黑屋|与非网

    GMT+8, 2025-1-24 21:09 , Processed in 0.108118 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.