完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
现代工业设备系统要求越来越复杂,既要强大的多任务的事务处理能力,又需要低延时实时任务处理能力的需求,特别是工业自动化控制领域(如数控机床、机械臂)、电力监测领域(如DTU、继保设备、一二次融合设备)等应用场景尤为迫切。为了满足日益复杂的系统要求,基于Xilinx Zynq-7020/7010实现的双系统解决方案。 Xilinx Zynq-7020/7010是一款集成双核ARM Cortex-A9 + Artix-7 FPGA架构的单芯片SoC,它的OpenAMP框架可实现双核ARM Cortex-A9非对称使用方案,从而使双核ARM实现分别跑两个系统:一个ARM Cortex-A9跑Linux,一个ARM Cortex-A9作为实时核跑RTOS(FreeRTOS)或者裸机。实时核与FPGA端进行低延时的高速数据交换与实时通讯控制,低延时的实时任务要求。而跑Linux的 ARM核作为更上层应用,处理更复杂的业务事务。 1、echo_test案例 1.1 案例功能 案例功能:CPU0使用RPMsg向CPU1发送数据,CPU1接收到数据后再使用RPMsg向CPU0回传数据。CPU0对回传的数据进行验证,并输出验证结果。 1.2 操作说明 将CPU1裸机或FreeRTOS可执行文件复制到评估板文件系统“/lib/firmware/”目录下,并执行如下命令加载CPU1程序。 Target# echo echo_test.elf > /sys/class/remoteproc/remoteproc0/firmware Target# echo start > /sys/class/remoteproc/remoteproc0/state 图 3 执行如下命令加载RPMsg驱动,并在“/dev/”目录下生成RPMsg设备节点。 Target# modprobe rpmsg_user_dev_driver 图 4 将CPU0应用程序可执行文件复制到评估板文件系统,并执行如下命令通过RPMsg与CPU1进行通信。 Target# ./echo_test 图 5 输入1,并按回车键进行测试。 图6 图7 输入2,并按回车键退出测试。 图 8 执行如下命令,停止CPU1程序。 Target# echo stop > /sys/class/remoteproc/remoteproc0/state 图 9 2、matrix_multiply案例 2.1 案例功能 案例功能:CPU0随机生成两个矩阵并使用RPMsg向CPU1发送数据,CPU1接收到数据后进行矩阵乘法运算,再使用RPMsg向CPU0回传运算结果,然后CPU0通过串口终端输出运算结果。 2.2 操作说明 将CPU1裸机或FreeRTOS可执行文件复制到评估板文件系统“/lib/firmware/”目录下,并执行如下命令加载CPU1程序。 Target# echo matrix_multiply.elf > /sys/class/remoteproc/remoteproc0/firmware Target# echo start > /sys/class/remoteproc/remoteproc0/state 图 10 执行如下命令加载RPMsg驱动,并在“/dev/”目录下生成RPMsg设备节点。 Target# modprobe rpmsg_user_dev_driver 图 11 将CPU0应用程序可执行文件复制到评估板文件系统,并执行如下命令通过RPMsg与CPU1进行通信。 Target# ./mat_mul_demo 图 12 输入1,并按回车键进行测试。 图 13 输入2,并按回车键退出测试。 图 14 执行如下命令,停止CPU1程序。 Target# echo stop > /sys/class/remoteproc/remoteproc0/state 图 15 3、内存分配说明 512MByte DDR容量版本核心板的内存地址分配如下: 表 1 1GByte DDR容量版本核心板的内存地址分配如下: 表 2 如需修改CPU1程序(OpenAMP-remote app)内存地址空间范围,可通过更改设备树文件tlz7x-easyevm-s.dts、资源表rsc_table.c及链接文件lscript.ld对内存地址空间进行重新分配。三者需同步修改并保持一致,以确保固件程序链接地址与设备树配置的elf_ddr_0对应。所使用的资源(内存和virtio设备资源)不能超出设备树文件配置的内存范围。 图 16设备树文件tlz7x-easyevm-s.dts配置 图 17设备树文件tlz7x-easyevm-s.dts配置 图 18 CPU1程序资源表rsc_table.c配置 图 19 CPU1程序链接文件lscript.ld配置 上述推文中的案例是在创龙科技(Tronlong)基于Zynq-7010/7020处理器设计的两款工业评估板——TLZ7x-EasyEVM、TLZ7x-EasyEVM-S上实现的,它由核心板+底板构成。 图 20 TLZ7x-EasyEVM硬件资源框图 图 21 TLZ7x-EasyEVM硬件资源框图 图 22 TLZ7x-EasyEVM-S硬件资源框图 图 23 TLZ7x-EasyEVM-S硬件资源框图 |
|
相关推荐
|
|
1333 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1041 浏览 0 评论
2408 浏览 1 评论
2113 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2376 浏览 0 评论
1872 浏览 49 评论
6009 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 10:25 , Processed in 0.569678 second(s), Total 63, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号