RK3568J支持非对称AMP : Linux+RTOS/裸机啦!

描述

经验老道的工程师都知道,在工业应用场景和业务逻辑里面,对CPU采集工业传感器信号的实时性要求非常高,同时,操作系统对这些传感器信号的处理,也作了非常严格的实时性限制。

对于实时传感器信号的采集捕获,通常是采用“单片机+RTOS实时操作系统”这种组合方式进行处理;而对于复杂的传感器信号处理、业务应用逻辑和网络任务处理,通常是采用“嵌入式SOC+Linux分时操作系统”这种组合较为恰当。

市场上现在有不少处理器芯片,在其芯片内部集成了多个处理器核心,分时系统核心和实时系统核心,不同的处理器核心之间通过高速总线进行数据共享处理,这次要分享的芯片主角是瑞芯微的RK3568J。

创龙科技基于 RK3568J 处理器芯片,研发出具有“非对称AMP双系统”的工业级核心板 SOM-TL3568,并且对工程师们开源了 Linux + RTOS/裸机 的应用案例,广泛应用于工业相关领域。

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

非对称AMP(Asymmetric Multi-Processing),即非对称多处理架构。“非对称AMP”双系统主要是指运行同一块芯片内包含多个处理核心,多个核心可以独立运行不同的操作系统,或这运行裸机应用程序。

例如,使用多个核心分别运行 Linux + RTOS/裸机应用程序,但需要注意的是,必需要有一个主核心来控制整个系统以及其它从核心。

每个处理器核心之间的数据空间相互隔离,即拥有属于自己的内存,既可各自独立运行不同的任务,同时又可以多个核心之间进行通信。

随着工业应用现场对嵌入式系统多任务和实时性要求的不断提高,非对称AMP架构如今已成为一种新的选择,其主要应用于工业控制领域,如工业PLC、运动控制器、机器人控制器、继电保护装置、小电流选线设备等。

“非对称AMP”对工业有何重要意义

1- 更强的“系统实时性”非对称AMP架构之所以拥有更强的系统实时性,其原因在于,可以使用固定的核心进行实时任务处理。因此,在工业自动化控制领域中采用非对称AMP架构,可以同时兼顾工业系统控制设备需要的复杂功能和实时性。   采用AMP架构,能够极大地提高系统实时性,从而提高系统执行效率、计算能力及响应外部事件速度等。

2- 更高的“系统稳定性”非对称AMP架构拥有更高的系统稳定性,是因为无需多个分立CPU之间进行频繁数据交互。   在AMP架构中,每个处理器核心之间相互隔离,独立拥有属于自己的内存,核心之间的数据互不干扰。开发者可根据工业场景需要,灵活地指定某个任务在某个核心上独立运行,也可指定不同核心系统之间进行相互数据通信,因此系统稳定性将会大大提高,有效地降低系统崩溃的概率,从而保证数据信息完整稳定性。

3- 更低的“系统硬件成本”核间通信方式决定了,仅需要一套硬件电路就可以实现复杂的功能,使得非对称AMP架构方案拥有更低的系统硬件成本。   AMP架构中各核心可运行不同的操作系统,可并行执行多个任务,在开发中不需额外搭建其他系统硬件电路,在提高效率的同时,大大降低系统硬件成本。而如果采用分立CPU的设计方案,则需要两套硬件电路(CPU/ROM/RAM/PMIC),系统硬件成本成倍增加。

RK3568J非对称AMP开发案例

创龙科技基于 RK3568J 处理器研发的工业级核心板(SOM-TL3568),现已提供了非对称AMP开发案例,并继续快速完善中。   目前已经提供了GPIO、UART控制功能案例,同时计划在近1~2个月陆续提供基于AMP架构的SPI、I2C、CAN、PCIe等案例。

SOM-TL3568核心板CPU、ROM、RAM、电源、晶振、连接器等所有器件均采用国产工业级方案,国产化率100%。  (1分钟解锁国产化率100%的RK3568J工业核心板)

接下来,我们以串口回显功能为例,演示一下SOM-TL3568核心板的非对称AMP案例的开发基本流程。

实现串口回显功能案例案例实现功能:CPU0、CPU1、CPU2核心运行Linux系统;CPU3核心运行Baremetal、RT-Thread(RTOS)程序,实现RS485 UART7串口的回显功能。

裸机



图 1

请将产品资料案例提供的amp.img镜像,拷贝至评估板文件系统,然后在开发板命令行终端,执行如下命令,将其固化至Linux系统启动卡对应分区。  

备注:如需固化到eMMC,需要将设备节点修改为"/dev/mmcblk0p8"。

Target # dd if=amp.img of=/dev/mmcblk1p8 conv=fsync

Target # sync

Target # reboot

裸机

 

图 2

将评估板上电启动后,在U-Boot终端倒计时结束之前,按下空格键进入到U-Boot的命令行模式,然后执行如下命令,关闭设备树的uart0和uart7配置,以避免Linux内核占用案例的外设资源。

U-Boot # fdt set /serial@fdd50000 status "disable"

U-Boot # fdt set /serial@fe6b0000 status "disable"

U-Boot # boot

裸机

 

图 3

在核心板的 U-Boot 启动成功后,将自动加载运行amp.img镜像,RS232的UART0串口终端,将打印出程序运行的信息。

裸机



图 4 Baremetal程序串口终端

裸机

 

图 5 RT-Thread(RTOS)程序串口终端

在RS485 的 UART7 串口输入8个字符,然后按回车,串口终端将回显输出接收到的字符。

裸机

 

图 6

与此同时RS232 的 UART0 串口终端,将打印如下程序运行的信息。

裸机

 

图 7 Baremetal 程序终端日志

裸机

 

图 8 RT-Thread 程序终端日志







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分