全志T153处理器ARM+RISC-V的双核CP多有强?

原创 作者 飞凌嵌入式 2026-01-16 10:30:00 T153 全志t153 T153开发板

嵌入式设备拼性能、拼响应、拼功耗的内卷时代,双核协作才是破局的关键

传统的对称多处理(SMP)架构已难以兼顾全场景需求,非对称多处理(AMP)异构架构正在成为行业主流

在这样的背景下,全志T153平台直接搬出ARM+RISC-V的"双核CP":主打高性能计算的Cortex-A7核心运行Linux,聚焦高实时性任务的RISC-V E907核心运行RTOS,组成 "互补型搭档"。

全志T153异构双核架构示意图

本文会通过飞凌嵌入式OK153-S开发板,为大家实测这对双核CP的协作实力——依托异构核间通讯机制(IPC)与Suspend/Resume电源管理机制,全面验证A核与R核的协同工作能力,并验证异构多核环境下的数据交互效率与智能化唤醒逻辑。

飞凌嵌入式OK153-S开发板

1 休眠唤醒功能验证

pm_test节点可以用于测试Linux部分的休眠唤醒功能。设备冻结后,等待5s,即返回,执行唤醒动作。

# 设置pm_test模式
echo devices > /sys/power/pm_test
# 设备进入休眠
echo mem > /sys/power/state
# 执行以上命令后,设备5s后会被唤醒。

2 R核唤醒休眠的A核

功耗管理是产品续航与成本控制的核心竞争力。T153处理器的异构多核架构为此提供了的解决方案

  • A核休眠:ARM核在空闲时进入WFI深度睡眠,功耗降至最低
  • R核值守:RISC-V核心持续运行,监听外部事件
  • 按需唤醒:当传感器触发、定时任务到达时,R核一键唤醒A核处理复杂任务

A核进入WFI模式,R核运行在DRAM上,R核唤醒A核

首先设置主核休眠时,DRAM不进入自刷新,从核保持运行在DRAM上。可以通过linux控制台输入以下命令切换:

echo 0 >/sys/class/pm_msgbox/set_dram_refresh

然后A核进入休眠状态:

echo mem > /sys/power/state

使用R核唤醒A核。我们的R核提供了cpux_resume接口来唤醒主核,在R核中执行以下命令进行A核唤醒:

cpux_resume

在低功耗场景下,高性能的A核休眠待机,低功耗的R核持续值守。当外部事件触发时,R核可瞬间唤醒A核响应任务。这种"小核值班、大核待命"的架构,让设备在续航与实时响应之间达到平衡。

3 双核通讯验证

T153处理器采用ARM Cortex-A7+RISC-V的多核异构架构,让系统兼具"大脑"与"小脑",而异构核间通讯机制(IPC)正是连接两个"脑"的高速通道,通过共享内存机制,双核之间可实现数据传输。以下是操作方法

# 测试之前首先使能R核:
echo amp_rv0.bin > /sys/class/remoteproc/remoteproc0/firmware
echo start > /sys/class/remoteproc/remoteproc0/state

RISC-V端例程

代码路径:rtos/lichee/rtos-components/aw/rpbuf/rpbuf_demo/rpbuf_test.c

static void print_help_msg(void)
{
    printf("\n");
    printf("USAGE:\n");
    printf("  rpbuf_test [OPTIONS]\n");
    printf("OPTIONS:\n");
    printf("  -h : print help message\n");
    printf("  -c : create buffer\n");
    printf("  -C : Send Cnt(default: 1)\n");
    printf("  -d : destory buffer\n");
    printf("  -s : send test messagese\n");
    printf("  -l : list created buffers\n");
    printf("  -a : sync transmit\n");
    printf("  -I ID : specify controller ID (default: 0)\n");
    printf("  -N NAME : specify buffer name (default: \"%s\")\n", RPBUF_BUFFER_NAME_DEFAULT);
    printf("  -L LENGTH : specify buffer length (default: %d bytes)\n", RPBUF_BUFFER_LENGTH_DEFAULT);
    printf("  -p : print performance data\n");
    printf("\n");
    printf("e.g.\n");
    printf("  First, create a buffer (its name and length should match that of remote rpbuf buffer):\n");
    printf("    rpbuf_buffer -N \"xxx\" -L LENGTH -c\n");
    printf("  Then if remote sends data to it, the buffer callback will be called.\n");
    printf("\n");
    printf("  We can send test data to remote:\n");
    printf("    rpbuf_test -d 100 -s -L 32\n");
    printf("\n");
    printf("  If this buffer is no longer in use, destroy it:\n");
    printf("    rpbuf_test -N \"xxx\" -d\n");
    printf("\n");
}

参数说明

  • -c创建缓冲区
  • -C发送次数
  • -d销毁
  • -i哪个节点
  • -a数据同步
  • -N名字
  • -L缓冲区大小

A核例程

static void print_help_msg(void)
{
    printf("\n");
    printf("USAGE:\n");
    printf("  rpbuf_test [OPTIONS]\n");
    printf("\n");
    printf("OPTIONS:\n");
    printf("  -d time : set data sending interval (default: 100 ms)\n");
    printf("  -s : send test messages\n");
    printf("  -c : send count (default: 10)\n");
    printf("  -r : receive messages\n");
    printf("  -t time : specifies the time of receive messagess, unit:ms\n");
    printf("  -a : sync transmit\n");
    printf("  -I ID : specify rpbuf ctrl ID (default: 0)\n");
    printf("  -N NAME : specify buffer name (default: \"%s\")\n", RPBUF_BUFFER_NAME_DEFAULT);
    printf("  -L LENGTH : specify buffer length (default: %d bytes)\n", RPBUF_BUFFER_LENGTH_DEFAULT);
    printf("  -p : print performance data\n");
    printf("\n");
    printf("e.g.\n");
    printf("  rpbuf_test -L 0x1000 -c 10 -s : send 10 test data, size=0x1000\n");
    printf("  rpbuf_test -L 0x1000 -r : receive test data forever, size=0x1000\n");
    printf("  rpbuf_test -L 0x1000 -r -t 1000 : receive test data 1 second, size=0x1000\n");
    printf("\n");
}

参数说明

  • -s发送
  • -c发送次数
  • -r阻塞接收

实验现象

以RISC-V向A核发送数据为例,缓冲区大小为511.875K,发送100次;开辟一个511.875K的缓冲区,A核向RISC-V发送一百次数据。

以下命令按次序执行:

执行端 命令
RISC-V端 rpbuf_test -c -I 0 -N rpbuf_test -L 524160 -a
A端 rpbuf_test -L 524160 -N rpbuf_test -r
RISC-V端 rpbuf_test -N rpbuf_test -C 100 -s

RISC-V 串口输出

cpu0>rpbuf_test -c -I 0 -N rpbuf_test -L 524160 -a
cpu0>[RPBUF_INFO][rpbuf_addr_remap_default:206]reamp pa:0x42144000 -> va:0x42144000
[RPBUF_INFO][rpbuf_service_command_buffer_created_handler:827]buffer "rpbuf_test" (id:0): local_dummy_buffers -> buffers
buffer "rpbuf_test" is available
cpu0>rpbuf_test -N rpbuf_test -C 100 -s
[0]data:21a94801873e262b487f31000da27543...
[md5:fd0f42ddde63121837ebcdec775250b9]

A核串口输出

root@OKT153:/# rpbuf_test -L 524160 -N rpbuf_test -r
ping: 8099.576172ms  bandwidth: 0.517149Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success
ping: 14.155000ms   bandwidth: 186.086807Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success
ping: 14.721000ms   bandwidth: 181.881592Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success
ping: 14.694000ms   bandwidth: 181.992096Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success
ping: 14.680000ms   bandwidth: 182.055313Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success
ping: 14.712000ms   bandwidth: 181.779083Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success
ping: 14.690000ms   bandwidth: 182.276901Mbps
data:21a94801873e262b487f31000da27543...  check:fd0f42ddde63121837ebcdec775250b9 success

测试数据显示,ARM与RISC-V双核间数据传输带宽平均可达 184Mbps,验证了共享内存机制的高效与稳定。

4 结论

全志T153处理器通过 异构多核架构高效异构核间通讯机制(IPC)以及与之配套的 智能休眠唤醒方案,可以实现ARM核与RISC-V核的高效协作——Linux负责复杂运算,RTOS保障实时响应,同时将 "高性能计算""硬实时控制""超低功耗待机"这三大关键能力融为一体,满足工业控制等场景需求。

这远不止是技术功能的实现,更是为下一代智能硬件提供了 一个量产化、功能完整、性能可靠的芯片级解决方案平台

咨询立即获得专属报价

华北区负责人二维码

华北区负责人

华东区负责人二维码

华东区负责人

华南区负责人二维码

华南区负责人

中西区负责人二维码

中西区负责人

相关产品 >

  • FET153-S核心板

    全志 T153 是面向工业领域的高性能处理器,基于全志 T153 开发的 T153 核心板,采用 4 核 Cortex-A7+64 位 RISC-V 异构架构,主频达 1.6GHz(A7)+600MHz(RISC-V),兼顾高效数据处理与实时控制需求。原生支持 3 路 GMAC 千兆以太网、2 路 CAN-FD、LocalBus 并行总线,接口资源丰富,cpu引脚全引出,适配多设备连接。核心板采用 100% 国产工业级元器件,-40℃~85℃宽温稳定运行,支持国密算法与安全启动,满足电力、工业控制、新能源、医疗等场景需求,且提供 10-15 年供货保障,助力用户产品快速落地。
    了解详情
    FET153-S核心板
  • OK153-S开发板

    全志 T153 开发板是专为工业场景打造的国产核心开发载体,以全志 T153 处理器为核心,搭载 4×Cortex-A7+64 位 RISC-V 多核异构架构,兼顾高性能数据处理与低功耗实时控制需求。集成 3 路 GMAC 千兆以太网、2 路 CAN-FD、LocalBus 等工业关键接口,搭配完善的 Linux/Android SDK 及硬件开发资料,可快速适配工业控制、电力、新能源等领域,助力用户低成本、高效率推进国产化项目研发。 了解详情
    OK153-S开发板

推荐阅读 换一批 换一批