tag 标签: TMS320C6678

相关帖子
相关博文
  • 热度 3
    2021-7-7 13:43
    3191 次阅读|
    1 个评论
    目 录 2 matrix_multiply案例 2.1 案例功能 2.2 操作说明 2.3 关键代码 2.3.1 linux_demo代码说明 2.3.2 freertos_demo代码说明 2.3.3 baremetal_demo代码说明 3 内存分配说明 4 案例编译说明 4.1 CPU0应用程序编译 4.2 CPU1裸机与FreeRTOS程序编译 前言 本文主要介绍ZYNQ基于OpenAMP框架的双核ARM通信案例的使用说明,CPU0(Master)运行Linux系统,CPU1(Remote)运行裸机或FreeRTOS程序。CPU0使用remoteproc加载CPU1程序,并对CPU1进行配置。 图 1 matrix_multiply案例开发手册是基于创龙科技TI TMS320C6678 + Xilinx Zynq-7045的高速多路高清视频采集处理平台,采用DSP+FPGA+ARM架构。 ​ SOM-TL6678ZH核心板正面图 ​ SOM-TL6678ZH核心板背面图 TL6678ZH-EVM评估板资源图1 ​ TL6678ZH-EVM评估板资源图2 表 1 1matrix_multiply案例1案例功能 案例功能:CPU0随机生成两个矩阵并使用RPMsg向CPU1发送数据,CPU1接收到数据后进行矩阵乘法运算,再使用RPMsg向CPU0回传运算结果,然后CPU0通过串口终端输出运算结果。 2操作说明 将CPU1裸机或FreeRTOS可执行文件复制到评估板文件系统“/lib/firmware/”目录下,并执行如下命令加载CPU1程序。 Target# /sys/class/remoteproc/remoteproc0/firmware Target# /sys/class/remoteproc/remoteproc0/state 图 29 执行如下命令加载RPMsg驱动,并在“/dev/”目录下生成RPMsg设备节点。 Target# modprobe rpmsg_user_dev_driver 图 30 将CPU0应用程序可执行文件复制到评估板文件系统,并执行如下命令通过RPMsg与CPU1进行通信。 Target# ./mat_mul_demo 图 31 输入1,并按回车键进行测试。 图 32 输入2,并按回车键退出测试。 图 33 执行如下命令,停止CPU1程序。 Target# /sys/class/remoteproc/remoteproc0/state 图 34 3关键代码 由于本案例大部分代码与echo_test案例基本一致,因此代码说明可参考echo_test案例代关键代码章节,下面对部分代码进行补充说明。 2.3.1linux_demo代码说明 (1)打开RPMsg驱动设备节点,创建ui_thread_entry、compute_thread_entry线程。 图 35 2.3.2freertos_demo代码说明 (1)在app()中进行矩阵乘法运算,并向CPU0回传运算结果。 图 36 3.3baremetal_demo代码说明 (1)在数据读取函数rpmsg_read_cb()中,对从CPU0接收到的数据进行判断,并进行不同处理(关机或回传数据),实现通信和生命周期管理。 图 37 3.4内存分配说明 PS端DDR容量为1GByte,内存地址分配如下: 表 2 如需修改CPU1程序(OpenAMP-remoteapp)内存地址空间范围,可通过更改设备树文件、资源表rsc_table.c及链接文件lscript.ld对内存地址空间进行重新分配。三者需同步修改并保持一致,以确保固件程序链接地址与设备树配置的elf_ddr_0对应。所使用的资源(内存和virtio设备资源)不能超出设备树文件配置的内存范围。TL6678ZH-EVM评估板使用的设备树文件为tl6678zh-evm.dts,该设备树文件会调用tlz7x-easyevm.dts,因此实际需修改的文件为tlz7x-easyevm.dts。 图 38设备树文件tlz7x-easyevm.dts配置 图 39设备树文件tlz7x-easyevm.dts配置 图 40CPU1程序资源表rsc_table.c配置 图 41CPU1程序链接文件lscript.ld配置 案例编译说明 4.1CPU0应用程序编译 请参考“ZYNQ Linux开发环境搭建”文档配置好交叉编译工具链,并将CPU0应用程序源码目录拷贝至Ubuntu,然后在源码目录下执行如下命令进行编译。 Host# make CC=arm-linux-gnueabihf-gcc 图 42 由于matrix_multiply案例使用线程相关函数,编译时需增加-pthread 编译选项。 Host# make CC=arm-linux-gnueabihf-gcc CFLAGS= -pthread 图 43 4 .2 CPU1裸机与FreeRTOS程序编译 请参考“ZYNQ PS端裸机与FreeRTOS案例开发手册”进行工程编译。由于案例路径发生改变后会无法识别到BSP源文件,编译前请参考如下操作更新BSP源文件。 双击案例xxx_bsp目录下的system.mss,在弹出的界面点击“Re-generate BSP Source”。 图 44 点击Yes重新更新BSP源文件后,即可正常编译。 图 45 图 46 补充说明 案例工程默认已增加“-DUSE_AMP=1”编译选项。增加此编译选项后,仅允许CPU0对GIC、L2等共享资源初始化。 如新建工程,可参考如下方法进行设置。 (1)右击BSP包,点击Board Support Package Settings。 图 47 extra_compiler_flags”,增加“-DUSE_AMP=1”编译选项。 图 48 ​ 如需获取案例源码、TL6678ZH-EVM评估板或其他产品详细资料,欢迎留言或者私聊!
相关资源
  • 所需E币: 5
    时间: 2023-2-12 18:16
    大小: 2.47MB
    上传者: ZHUANG
    基于TMS320C6678DSP的雷达数字信号处理软件设计
  • 所需E币: 4
    时间: 2022-1-3 01:54
    大小: 1.69MB
    上传者: czd886
    基于EMIF16模块的TMS320C6678与FPGA接口设计与实现.
  • 所需E币: 1
    时间: 2021-4-8 10:08
    大小: 1.52MB
    上传者: czd886
    基于TMS320C6678DSP的程序优化技术的研究
  • 所需E币: 1
    时间: 2021-4-8 10:09
    大小: 3.2MB
    上传者: czd886
    基于TMS320C6678的32核DSP阵列处理板设计及实现
  • 所需E币: 1
    时间: 2021-4-8 10:09
    大小: 1.95MB
    上传者: czd886
    基于TMS320C6678网口的程序自更新应用技术
  • 所需E币: 1
    时间: 2021-4-8 10:41
    大小: 628.38KB
    上传者: czd886
    一种基于TMS320C6678多核处理器的JPEG实时解码优化算法
  • 所需E币: 1
    时间: 2021-4-8 13:51
    大小: 1.2MB
    上传者: czd886
    基于TMS320C6678的多核DSP加载模式研究
  • 所需E币: 1
    时间: 2021-4-8 13:53
    大小: 1.88MB
    上传者: czd886
    基于多核DSPTMS320C6678的FMCWSAR成像
  • 所需E币: 1
    时间: 2021-3-12 15:26
    大小: 946.74KB
    上传者: ZHUANG
    多核DSP芯片TMS320C6678的DDR3接口设计
  • 所需E币: 5
    时间: 2019-12-24 00:52
    大小: 876.91KB
    上传者: givh79_163.com
    面向多相机接入的TMS320C6678图像处理系统,主CPU采用8核DSP处理器TMS320C6678,具有10G处理能力,支持Basler/Dalsa等国际主流CameraLink、Gige相机的全速接入,提供DSPCCS环境下的相机驱动软件包和图像处理算法包,并提供基于OpenMP的简易化CCS二次开发框架和典型例程,同时提供上位机C#调试软件程序,并支持一键烧写功能。面向多相机接入的TMS320C6678图像处理系统FAQ目录1.提供的技术参考文档有哪些......................................................................................................12.你们的硬件系统可以接入哪些接口哪些厂家的相机..............................................................13.嵌入式DSP图像处理系统有什么优点.....................................................................................24.你们设计的板卡与TI提供的开发板有何区别?....................................................................35.与工控机比较,TMS320C6678的运算性能如何....................................................................76.没有相机厂家提供的SDK,DSP如何做到Gige相机的接入...............................................77.你们是如何利用Lwip实现60MB/s以上的网络速率的。................................……