0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DR1 系列评估板 OpenAMP 双核 ARM 通信案例开发手册

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2026-01-21 15:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

本文主要介绍基于OpenAMP框架的双核ARM通信案例使用说明。

开发环境

Windows开发环境:Windows10 64bit

开发工具:TD_5.9.1_DR1_2025.1_NL、FD_2025.1_SP1

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

wKgZO2lwfA2AZuL_AABc2ROKNvY517.png

注意事项

案例位于产品资料“4-软件资料Demoamp_demos”目录下,案例目录详细说明见下表。

wKgZPGlwfBSAEz4oAAAkiTFmFlc648.png

1OpenAMP使用说明

OpenAMP是一个标准化的嵌入式多核框架,主要针对AMP应用场景提供RTOS和裸机程序必要的管理和通信接口。它兼容了Linux的Remoteproc和Rpmsg设计,为远程核心(Remoteprocessors)提供了软件组件,使得用户能够快速地搭建一套标准的核间交互应用场景。

在安路多核异构系统中,APU0作为OpenAMP的Master端,运行Linux系统;APU1作为OpenAMP的Slave端,运行Baremetal或FreeRTOS程序。其中,APU0使用remoteproc(即Rproc)加载APU1程序,并对APU1进行配置。

wKgZO2lwfBqAdkUNAAFKtcz85Dk007.png图 1

目前TLDR1-EVM支持的OpenAMP场景组合如下表。

wKgZO2lwfCGANVAlAAARdQzrtN4195.png

2amp_rpmsg_echo案例

2.1案例功能

案例功能:APU0使用RPMsg向APU1发送数据,APU1接收到数据后再使用RPMsg向APU0回传数据。APU0对回传的数据进行验证,并输出验证结果。

2.2TD工程说明

请参考《Linux系统开发手册》的“FSBL TD工程说明”章节。

2.2.1IP核简介

IP核开发相关资料可查阅产品资料“6-开发参考资料Anlogic官方参考文档”目录下文档,IP核配置参数如下。

(1)ARM Processor System

ARM Processor System IP核心配置和FSBL工程基本一致,其他详细配置可参考位于产品资料“4-软件资料LinuxFSBLfsbl-[版本号]”目录下的FSBL工程。

2.3FD工程说明

Baremetal和FreeRTOSFD工程注意事项如下:

(1)创建Platform Project工程时"Processor"选择"apu-1"。

备注:生成Baremetal FD工程时,"Operating system"选择"standalone";生成FreeRTOSFD工程时,"Operating system"选择"freertos"。

wKgZPGlwfCmAFUyWAANNcP1ClSg121.png图 2

(2)生成Platform Project工程后双击"system.mss"后继续点击"Modify this BSP's Settings"修改相关配置。

wKgZO2lwfceABKQeAADgFX3tewc744.png图 3

(3)点击"library"选项勾选"LIB_METAL"和"LIB_OPENAMP",若不勾选这两个板级支持包将会无法正常创建OpenAMP应用。

wKgZPGlwfc-AT8ioAABwi6ZkvCM637.png图 4

(4)点击"platform"选项将"OUTPUT_DEV"中的Value值设置为"UART0",若不设置该选项将会导致主机和从机使用同一串口,导致冲突。

wKgZO2lwfdiACqCSAACUGncCvsQ740.png图 5

(5)创建Applicable project工程时直接选择"DEMO_OPENAMP_RPMSG_ECHO"应用。

wKgZPGlwff-APwu0AADlLn6n6N8230.png图 6

2.4案例测试

请将产品资料“4-软件资料Demoamp_demosamp_rpmsg_echolinux_demodtsimage”目录下的dtb.bin文件拷贝至评估板文件系统目录下。执行如下命令替换系统默认设备树文件,评估板重启生效。

Target# mv dtb.bin/boot/dtb.bin

Target# reboot

wKgZO2lwfi2AcJmYAAAHguovPBA615.png图 7

评估板上电启动后,在U-Boot倒计时结束之前长按"Ctrl + C"进入U-Boot命令行模式,执行如下命令,修改环境变量。

U-Boot# setenv mmc_boot 'if mmc dev ${devnum}; then devtype=mmc; if test ${devnum} -eq 0; then setenv bootargs '"'"'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait maxcpus=1=1'"'"'; fi; if test ${devnum} -eq 1; then setenv bootargs '"'"'console=ttyS1,115200n8 earlycon=uart,mmio32,0xf8401000 loglevel=8 root=/dev/mmcblk1p2 rw rootfstype=ext4 rootwait maxcpus=1'"'"'; fi; ext4load mmc ${devnum}:2 ${kernel_addr_r} ${bootdir}/${kernel_image}; ext4load mmc ${devnum}:2 ${fdt_addr_r} ${bootdir}/${devicetree_image}; bootm ${kernel_addr_r} - ${fdt_addr_r}; run scan_dev_for_boot_part2; fi'

U-Boot# saveenv

U-Boot# reset

wKgZPGlwfjqAegoEAABqGuP5TTI814.png图 8

如需恢复U-Boot环境变量,在U-Boot命令行模式执行以下命令。

U-Boot# env default -a-f

U-Boot# saveenv

U-Boot# reset

wKgZPGkmlrOAZQkFAAAKhGVVYnk073.png图 9

进入评估板文件系统,执行如下命令,查看环境变量是否设置成功,确保只有一个核心被使用。

Target# cat /proc/cpuinfo

wKgZPGlwfw6ACYJGAAAZLAAU3MY274.png图 10

将APU1 Baremetal或FreeRTOS可执行文件拷贝至评估板文件系统"/lib/firmware/"目录下(若该目录不存在,请新建),并执行如下命令加载APU1程序。本次以Baremeta程序进行演示,如需测试FreeRTOS程序请修改命令中对应的可执行文件名称。

Target# mkdir -p /lib/firmware

Target# cp amp_rpmsg_echo_baremetal_a35.elf /lib/firmware/

Target# echo amp_rpmsg_echo_baremetal_a35.elf > /sys/class/remoteproc/remoteproc0/firmware

Target# echo start > /sys/class/remoteproc/remoteproc0/state

wKgZPGlwfyOAHBxUAAA27Dr-NiE632.png图 11

将产品资料“4-软件资料Demoamp_demosamp_rpmsg_echolinux_demobin”目录下的APU0应用程序可执行文件echo_test拷贝至评估板文件系统,执行如下命令,通过RPMsg实现与APU1进行通信。

Target# chmod +x echo_test

Target# ./echo_test

wKgZPGlwhYmAEUN0AAA2RCx0jSU445.png图 12

wKgZPGlwhZqAJcsFAAAuDnmenac245.png图 13

执行如下命令,停止APU1程序。

Target# echo stop > /sys/class/remoteproc/remoteproc0/state

wKgZPGlwhaKAbKA9AAAPh_gAR0Y434.png图 14

2.5案例编译

2.5.1设备树编译

将案例"linux_demodtssrc"目录下tldr1-evm.dts设备树拷贝至LinuxSDK源码"linux/arch/arm64/boot/dts/anlogic"目录下。

wKgZPGlwhaiANQK_AABIklefRuk073.png图 15

请按照《Linux系统开发手册》文档“LinuxSDK配置与编译”章节,重新编译LinuxSDK即可生成新的设备树镜像文件,位于LinuxSDK源码"device/output/anlogic_dr1m90/image"目录下。

wKgZO2lwha6AO_6uAABKSv5ebWg722.png图 16

2.5.2APU0应用程序编译

请参考《Linux系统开发手册》文档编译LinuxSDK,并将APU0应用程序源码src目录拷贝至Ubuntu,然后在源码目录下执行如下命令修改Makefile文件。工具链路径请以实际情况进行修改。

wKgZO2lwhbaAEMvhAABWFXTLbbI193.png图 17

修改内容如下:

CC = /home/tronlong/DR1/SDK_2025.1/toolchains/aarch64-linux/bin/aarch64-linux-gnu-gcc

wKgZPGlwhb2AS5LWAACBjOj5Yl8526.png图 18

修改完成保存后,在源码目录下执行如下命令进行编译。

Host# make

wKgZPGlwhc6AcKCpAACHJmrijuw268.png图 19

2.5.3APU1baremetal与FreeRTOS程序编译

请参考《TD-FD工程编译与加载》进行工程编译。

2.6关键代码

2.6.1linux_demo代码说明

linux_demo程序的echo_test.c文件位于案例"linux_demosrc"目录下。

(1)加载RPMsg_char驱动。

wKgZPGlwhkaAXyYkAAA5cLPPvMg978.png图 20

(2)绑定RPMsg设备并获取RPMsg驱动。

wKgZPGlwhk2AE_24AABsB9SJHEM264.png图 21

(3)创建RPMsg端点。

wKgZO2lwhlSARXWyAAB2LiZkbPU976.png图 22

(4)打开RPMsg驱动设备节点。

wKgZO2lwhluAVIO6AABF0NjP_DE363.png图 23

(5)分配内存,进行数据收发测试。

wKgZO2lwho-APO1pAAFfDYzqHMk363.png图 24

wKgZPGlwho-Ab1H9AADvDhHcdwQ047.png图 25

2.6.2baremetal_demo代码说明

baremetal_demo程序的rpmsg-echo.c文件位于案例

"baremetal_demoprojectamp_rpmsg_echo_a35amp_rpmsg_echosrcsystemgeneric"目录下。

(1)main()函数调用openamp_sample()函数进行系统初始化。

wKgZO2lwhp-ADeIcAAA66ecAWiY740.png图 26

(2)openamp_sample()函数初始化系统、创建设备、调用app函数、释放设备。

wKgZO2lwhqaAUdIpAAEchp-IIEE899.png图 27

wKgZO2lwhrCAAvoVAAAsrB6LXTI911.png图 28

(3)创建RPMsg端点、进行消息处理和检测、最后销毁RPMsg端点。

wKgZO2lwhriAYc8tAAC1GFk9LIA347.png图 29

2.6.3freertos_demo代码说明

由于FreeRTOS与Baremetal程序相似,freertos_demo代码说明可参考baremetal_demo代码说明小节。


审核编辑 黄宇

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

    关注

    135

    文章

    9614

    浏览量

    394428
  • Amp
    Amp
    +关注

    关注

    0

    文章

    103

    浏览量

    48688
  • Open
    +关注

    关注

    0

    文章

    24

    浏览量

    11465
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    BLDC开发利器(1)丨笙泉CGH系列EVB评估全面解析

    BLDC开发利器(1)丨笙泉CGH系列EVB评估全面解析
    发表于 04-17 12:17

    BLDC开发利器(1)丨笙泉CGH系列EVB评估全面解析

    等级与应用场景进行差异化设计,可有效解决开发过程中的适配性、调试复杂度与系统稳定性问题,加速项目落地。 CGH系列EVB评估通过
    的头像 发表于 04-17 11:26 3983次阅读
    BLDC<b class='flag-5'>开发</b>利器(<b class='flag-5'>1</b>)丨笙泉CGH<b class='flag-5'>系列</b>EVB<b class='flag-5'>评估</b><b class='flag-5'>板</b>全面解析

    DR1 系列评估 eMMC 健康管理案例开发手册:信息查询与寿命监控

    本文为创龙科技DR1 系列评估 eMMC 健康管理案例指南,核心是通过 emmc_get_info 程序读取 eMMC 健康信息。内容涵盖 EXT_CSD 寄存器查询、擦写次数统计、
    的头像 发表于 01-22 15:24 519次阅读
    <b class='flag-5'>DR1</b> <b class='flag-5'>系列</b><b class='flag-5'>评估</b><b class='flag-5'>板</b> eMMC 健康管理案例<b class='flag-5'>开发</b><b class='flag-5'>手册</b>:信息查询与寿命监控

    DR1 系列评估 PS 端裸机与 FreeRTOS 开发案例手册

    本文为创龙科技DR1 系列评估 PS 端裸机与 FreeRTOS 开发指南,涵盖三大核心案例与双开发
    的头像 发表于 01-19 17:12 373次阅读
    <b class='flag-5'>DR1</b> <b class='flag-5'>系列</b><b class='flag-5'>评估</b><b class='flag-5'>板</b> PS 端裸机与 FreeRTOS <b class='flag-5'>开发</b>案例<b class='flag-5'>手册</b>

    DR1 系列核心 PS+PL 异构多核实战案例手册(二)

    本文为创龙科技DR1 系列评估 PS+PL 异构多核开发指南,涵盖 9 类核心案例与关键技术实现。核心内容包括 AXI 总线与 PS_PL
    的头像 发表于 01-14 17:23 4884次阅读
    <b class='flag-5'>DR1</b> <b class='flag-5'>系列</b>核心<b class='flag-5'>板</b> PS+PL 异构多核实战案例<b class='flag-5'>手册</b>(二)

    DR1 系列核心 PS+PL 异构多核实战案例手册(一)

    本文为创龙科技DR1 系列评估 PS+PL 异构多核开发指南,涵盖 9 类核心案例与关键技术实现。核心内容包括 AXI 总线与 PS_PL
    的头像 发表于 01-14 15:37 352次阅读
    <b class='flag-5'>DR1</b> <b class='flag-5'>系列</b>核心<b class='flag-5'>板</b> PS+PL 异构多核实战案例<b class='flag-5'>手册</b>(一)

    DR1 评估 PL 端 FPGA 开发完全指南:基础案例与 ADC 采集模块详解(一)

    本文为创龙科技DR1 系列评估 PL 端 FPGA 开发案例指南,涵盖 led_flash、key_led 及三款 ADC 采集案例。核心
    的头像 发表于 01-08 15:46 486次阅读
    <b class='flag-5'>DR1</b> <b class='flag-5'>评估</b><b class='flag-5'>板</b> PL 端 FPGA <b class='flag-5'>开发</b>完全指南:基础案例与 ADC 采集模块详解(一)

    DR1M90 评估 TD-FD 工程与 Linux 多场景应用开发指南

    本文为创龙科技DR1 系列评估 TD-FD 工程编译与加载手册,系统讲解 TD/FPGA 工程与 FD/SoC 工程的全流程
    的头像 发表于 01-07 11:37 913次阅读
    <b class='flag-5'>DR1</b>M90 <b class='flag-5'>评估</b><b class='flag-5'>板</b> TD-FD 工程与 Linux 多场景应用<b class='flag-5'>开发</b>指南

    DR1平台Linux应用开发指南:含GDB调试、Python及MQTT实战

    本文为创龙科技DR1 系列评估 Linux 应用开发手册,系统讲解
    的头像 发表于 01-05 16:48 4961次阅读
    <b class='flag-5'>DR1</b>平台Linux应用<b class='flag-5'>开发</b>指南:含GDB调试、Python及MQTT实战

    安路DR1M90评估:从基础外设到通信模块测试指南

    手册由创龙科技研发,针对安路飞龙 DR1M90 评估,详述 Linux 系统下功能测试流程。含系统启动验证,LED、按键、DDR 等基础外设测试,ETH、WiFi、4G、GPS 等
    的头像 发表于 11-20 15:26 1810次阅读
    安路<b class='flag-5'>DR1</b>M90<b class='flag-5'>评估</b><b class='flag-5'>板</b>:从基础外设到<b class='flag-5'>通信</b>模块测试指南

    【米尔MYC-YM90X安路飞龙DR1开发板】HMI人机界面开发

    综合,生成网表文件,检查资源占用率(避免超过 DR1 系列的 94,464LEs、240DSP 等上限)。 约束配置:添加时序约束(如时钟频率、接口延迟)和物理约束(如引脚分配,需参考开发板原理图
    发表于 08-14 21:26

    【米尔-安路MYD-YM90X 创意秀】点灯也是入门绝活

    DR1系列,是集成了ARM Cortex-A35@1GHz 的FPGA,或者说SoC FPG
    发表于 08-10 22:10

    全国产!瑞芯微 RK3576 ARM 2.2GHz 工业开发板—LVGL应用开发案例

    本文主要基于评估演示LVGL应用开发案例,适用开发环境如下。创龙科技 TL3576-EVM 是一款基于瑞芯微 RK3576J/RK3576高性能处理器设计的4
    的头像 发表于 06-23 15:17 1071次阅读
    全国产!瑞芯微 RK3576 <b class='flag-5'>ARM</b> 八<b class='flag-5'>核</b> 2.2GHz 工业<b class='flag-5'>开发板</b>—LVGL应用<b class='flag-5'>开发</b>案例

    搭载ARM,NPU,FPGA三种核心的开发板—米尔安路DR1M90飞龙派

    上市,是A股首家专注于FPGA业务的上市公司。 YM90X开发板用的就是安路的SALDRAGON1(飞龙1,以下简称 DR1
    发表于 06-13 17:02

    ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙派开发板

    ,是A股首家专注于FPGA业务的上市公司。YM90X开发板用的就是安路的SALDRAGON1(飞龙1,以下简称DR1系列FPSoC。FPS
    的头像 发表于 06-13 08:03 2120次阅读
    有<b class='flag-5'>ARM</b>,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙派<b class='flag-5'>开发板</b>