1. 多核异构系统简介
多核异构系统是一种将同一颗 SoC 芯片中不同处理器核心分别独立运行不同平台的计算系统。同时支持SMP (Symmetric Multi-Processing) 对称多处理系统和 AMP (Asymmetric Multi-Processing) 非对称多处理系统。
多核异构系统将传统平台两套系统合二为一。在传统平台中,Linux 系统和实时系统往往是完全独立的两套系统,需要完整的两颗处理器和两套外围电路。而在多核异构系统中,通过合理的处理器核心、外设等资源划分,同一颗 SoC 芯片就能够独立运行 Linux 系统和实时系统。在满足系统软件功能和硬件外设的丰富性要求的同时,满足系统的实时性要求。
2. LPB3588运行Ubuntu20.04 + RT-Thread
首先需要获取Neardi LPB3588 AMP SDK (Linux Kernel V5.10), SDK里默认使用ARM Cortex-A55 CPU3运行AMP系统, UART6作为默认的RT-Thread console。
2.1 编译
首先安装编译环境, 请参考环境搭建。此文档只讨论如何编译AMP系统。 在SDK根目录下面, 按照如下步骤:
选择目标设备
Linx@ubuntu2004:/rk3588-linux510-repo$ ./build.sh lunch
############### Rockchip Linux SDK ###############
Manifest: rk3588_linux_release_v1.6.0_20241220.xml
Version: linux-5.10-gen-rkr9
Log colors: message notice warning error fatal
Log saved at rk3588-linux510-repo/output/sessions/2025-05-22_09-58-19
Pick a defconfig:
1. rockchip_defconfig
2. neardi_lpb3588_defconfig
3. rockchip_rk3588_evb1_lp4_v10_amp_defconfig
4. rockchip_rk3588_evb1_lp4_v10_defconfig
5. rockchip_rk3588_evb1_lp4_v10_mcu_defconfig
6. rockchip_rk3588_evb7_v11_defconfig
7. rockchip_rk3588_ipc_evb1_v10_defconfig
8. rockchip_rk3588_ipc_evb7_lp4_v11_defconfig
9. rockchip_rk3588_multi_ipc_evb1_v10_defconfig
10. rockchip_rk3588s_evb1_lp4x_v10_defconfig
Which would you like? [1]: 2
这里选择2, 也就是neardi_lpb3588_defconfig。
执行build.sh
默认会编译u-boot, kernel, buildroot及amp系统, 如下:
Linx@ubuntu2004:/rk3588-linux510-repo$ ./build.sh
############### Rockchip Linux SDK ###############
Manifest: rk3588_linux_release_v1.6.0_20241220.xml
Version: linux-5.10-gen-rkr9
Log colors: message notice warning error fatal
Log saved at rk3588-linux510-repo/output/sessions/2025-05-22_10-06-19
Using last kernel version(5.10)
==========================================
Final configs
==========================================
RK_AMP=y
RK_AMP_ARCH=arm
RK_AMP_ARM32=y
RK_AMP_FIT_ITS=amp_linux.its
RK_AMP_HAL_TARGET=rk3588
RK_AMP_MCU_HAL_TARGET=rk3588-mcu
RK_AMP_MCU_RTT_TARGET=rk3588-mcu
RK_AMP_RTT_TARGET=rk3588-64
RK_BOOT_FIT_ITS=/rk3588-linux510-repo/device/rockchip/.chip/boot.its
RK_BOOT_IMG=boot.img
RK_BUILDROOT=y
RK_BUILDROOT_CFG=rockchip_rk3588
RK_CHIP=rk3588
RK_CHIP_FAMILY=rk3588
RK_CHIP_HAS_GPU=y
RK_DEBIAN=y
编译后的固件在rk3588-linux510-repo/rockdev。
编译AMP
步骤2已经编译了AMP系统, 但是当我们调试或者单独改变AMP配置时, 往往需要单独编译AMP系统。 在SDK环境里执行如下即可:
Linx@ubuntu2004:/rk3588-linux510-repo$ ./build.sh amp
############### Rockchip Linux SDK ###############
Manifest: rk3588_linux_release_v1.6.0_20241220.xml
Version: linux-5.10-gen-rkr9
Log colors: message notice warning error fatal
Log saved at /rk3588-linux510-repo/output/sessions/2025-05-22_10-11-43
Using last kernel version(5.10)
==========================================
Final configs
==========================================
RK_AMP=y
RK_AMP_ARCH=arm
编译后的文件在rk3588-linux510-repo/rockdev/amp.img
编译Ubuntu
Linx@ubuntu2004:/rk3588-linux510-repo$ ./build.sh focal
############### Rockchip Linux SDK ###############
Manifest: rk3588_linux_release_v1.6.0_20241220.xml
Version: linux-5.10-gen-rkr9
Log colors: message notice warning error fatal
Log saved at /rk3588-linux510-repo/output/sessions/2025-05-22_10-32-42
Using last kernel version(5.10)
==========================================
Start building rootfs(focal)
==========================================
==========================================
Start building Focal(arm64)
==========================================
Building for arm64
烧录
使用Rockchip提供的烧录工具, USB线连接电脑和设备, 如下:

运行及测试
系统起来时, 分别连接Linux 和AMP输出的console口, 也即Debug UART和UART6(/dev/ttyS6), 有如下系统
Linux Ubuntu 20.04
neardi@LPA3588:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
RT-Thread系统:
msh />version
\ | /
- RT - Thread Operating System
/ | \ 4.1.1 build May 21 2025 17:14:17
2006 - 2022 Copyright by RT-Thread team
msh />list_mempool
mempool block total free suspend thread
-------- ---- ---- ---- --------------
msh />list_device
device type ref count
-------- -------------------- ----------
pin Pin Device 0
uart6 Character Device 2
msh />
关于如何在CPU和AMP系统之间通信、资源分配、编程等等, 请参考SDK里的AMP开发指南。
3. CAN通信测试
3.1 在Neardi LPB3588设备上面, 把can0, can1的TX/RX对应接起来, 如下:

3.2 在rt-thead系里, 执行如下命令:
msh />can_open rk_can1
默认的波特率是500K。
3.3 rt-thread can接收数据
在Ubuntu系统里执行如下命令:
neardi@LPA3588:~$ sudo ip link set can0 down
neardi@LPA3588:~$ sudo ip link set can0 up type can bitrate 500000
neardi@LPA3588:~$ cansend can0 006#ED99999999999999
neardi@LPA3588:~$ cansend can0 006#ED99999999999900
上面发送2帧数据从ubuntu can0到rt-thread can1, rt-thread接收到的CAN数据如下:
msh />ID:6 , LEN:8 DATA:
999999ed99999999
ID:6 , LEN:8 DATA:
999999ed 0999999
3.4 rt-thread can 发送数据
在rt-thread执行如下命令: