(多核DSP快速入门)4.编译测试多核DSP实例Vlfft

转载请注册来源http://blog.csdn.net/tostq

系列教程目录:http://blog.csdn.net/tostq/article/details/51245979

点击更多:https://www.zhihu.com/people/san-hao-bai-du-ren-79

Vlfft是由TI官网提供的一个大尺寸快速傅里叶变换的多核DSP实例,其下载地址如下:
http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/12423/67467.aspx
这个实例是许多同学多核DSP的入门实例,实例内也提供了简单的安装编译教程,不过并没有讲得很清楚,在编译的过程中还是会出现很多问题,本节主要提供一个详细的Vlfft安装编译步骤,但是由于这个实例涉及了较多关于多核通信的内容,所以这里并不详细解释代码原理,如果后面有时间的话,以后再具体分析这个实例。
一、安装MCSDK和STMlib
这MCSDK组件是Vlfft必须的,不过STMlib却是不必须的。
(1)MCSDK的安装
MCSDK ( Multicore Software Development Kit )是一个多核的软件开发组件,它主要是通过同BIOS协同开发,里面提供了比如PDK等工具,与CCS5.2兼容的MCSDK应该是2.0版本,而我使用的是2.1版本,会出现一个警告,但也是可以运行的。
MCSDK的下载地址:http://www.ti.com/tool/bioslinuxmcsdk ,这里我选择的是最后一个。
下载MCSDK后,直接点击安装,安装目录同CCS在同一文件夹下,如D:/ti,在安装组件上,可以全部选择啦。
完成安装,重新启动CCS,查看相关组件是否安装到CCS中去(一般都自动导入了),如果不是,请手动导入。
关于SYS/BIOS的官方安装方法:http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_Getting_Started_Guide
(2)STMlib安装
STMlib(System Trace)是一个系统追踪组件,Vlfft这个工程支持2种配置,一种是纯VLFFT运算工程(默认模块,也可以不安装STM),还有一种是集成了STM 模块的VLFFT工程,即在Build option中的build variables中定义了STM_LIBRARY_ROOT,如果未安装STM lib或者STM的路径不对,则可能编译报错。
STMLib 下载地址:https://gforge.ti.com/gf/project/ctoolslib/frs/
STMLib 的学习使用:http://processors.wiki.ti.com/index.php/Using_System_Trace_(STM)
STMLib安装只需要将安装解压跟CCS放到同一个文件夹就可以了(如D:/ti)
二、Vlfft的配置
(1)将Vlfft项目的整体文件夹放到MCSDK的demo文件夹下:如\mcsdk_2_01_02_06\demos
(2)CCS中导入项目
在Project Explorer中右击选择Import...,选择导入一个已存在的CCS项目
项目位置中输入Vlfft文件夹所在地址,此时在Vlfft文件夹下,发现了两个项目文件(6678版本和6670版本)这里选择6678版本就可以了。
如果是选择6670版本,还需要打开vlfftconfig.h(vlfft\vlfftInc文件夹下),把常量EIGHT_CORE_DEVICE设为0,常量FOUR_CORE_DEVICE设为1,(默认是6678,与个这个设置刚好相反)
TIPs:
a).关于FFT的大小设置,将vlfftconfig.h中的如下宏中的一个设为1,其他为0
b). DSP内核的数目设置,选择1,2,4,8个设置
(3)BIOS文件的配置
vlfft_evmc6678l.cfg文件是BIOS文件的配置文件,下一节会具体解释如何使用BIOS,这里直接双击点开,出现如下:
BIOS的设置提供了界面和源代码编辑两种选择,这里我们点击Source,选择源代码编辑
如果是Debug模型,需要将.cfg源代码中的92~96行的代码注释,而Release模式,则不作改变。
此时点击小锤子进行Debug模式编译,出现如下错误,这里的警告主要是MCSDK版本不配,关系不大。
错误主要是placement fails for object
这里提示.const所在段L2SRAM太小,内存段分配太小,需要打开链接命令文件.cmd(在Debug/configPkg/Linker.cmd)查看:
这里的L2SRAM只有156kb,实在太小,于是我们可以增加其大小到4M左右,但是我们不能直接到.cmd文件上修改,因为这个文件是由BIOS配置文件.cfg自动生成的,所以即使我们在.cmd文件中修改了,最后还是会出现原来的错误。
(3)在BIOS文件中修改内存设置
SYS/BIOS是DSP的一个实时操作系统,其给DSP提供许多API函数和操作组件,CSS提供了界面式的配置方法(通过System Overview)可以打开,这里的Task、Swi、Hwi、Memory等都是BIOS的相关组件,这里绿色小勾表明了当前组件已经被安装到了BIOS中了,现在我们需要重新分配内存,所以我们点开Memory组件,选择Program模式
在Program中选择View,找到cpu中的MemoryMap中修改L2SRAM的大小和L2SRAM_1的起始地址,这里需要注意的是虽然错误只是提示L2SRAM的太小,但由于L2SRAM和L2SRAM_1相邻,所以如果修改L2SRAM的大小,就必然也要修改L2SRAM_1的起始地址。
还有一种更为便捷的方法是直接在.cfg的源文件(Source)上修改,这里在文件末尾添加如下:
var execontextInstance0 = xdc.lookup('xdc.platform.ExeContext.Instance#0');
execontextInstance0.memoryMap["L2SRAM"].len = 4194304;
execontextInstance0.memoryMap["L2SRAM_1"].base = 12582912;
此时再次点击编译,完成编译
三、Vlfft的调试结果
(1)导入目标配置文件.ccxml,选择C6678 Device Functional Simulator, Little Endian的目标配置文件
(2)将所有的(8个)核Group,点击运行,获得结果:
四、集成了STM 模块的VLFFT工程
前面我们安装了STMLib,这一节介绍如何使用STMLib
(1)在Build option中的build variables中定义了STM_LIBRARY_ROOT
(2)在Linked Resources中修正STM_LIBRARY_ROOT的地址
做完上面两件事后,我们点击项目文件中的STMhelper.c,发现现在是可以打开的,说明STMlib已经成功导入了
Vlfft代码下载
https://github.com/tostq/EasyMulticoreDSP/tree/master/4.vlfft

2020-09-17相关推荐

  1. 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第2场省赛 2020.10.17】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 说明:大部分题解思路及程序代码 源自 蓝桥杯 官网视频(Java B组历年真题解析) -- 郑未老师. ...

  2. RDKit | 基于RDKit(≥2020.09.1)的相似图绘制新方法

    导入库 from rdkit import Chem from rdkit.Chem import Draw from rdkit.Chem.Draw import SimilarityMaps fr ...

  3. 2020.12.17

    2020.12.17 1.无重复字符的最长子串(leetcode3) 思路:使用滑动窗口机制 设置右指针移动,其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目 ...

  4. 搭建本地Spring Initializr服务(2020/4/17)

    搭建本地Spring Initializr服务(2020/4/17) 网上看了很多相同的教程,也根据教程搭建成功了.但是我在看这些教程的时候都发现了一个很关键的东西,最后都是启动initializr- ...

  5. Unity 2020.3.17 从UnityHub下载安装失败(含Android)

    欢迎转载,记得标明来源,如能帮到你,我很高兴,有问题可以留言交流,翕翕堂~ 目录 前述 下载UnityHub 选择版本 选择目标旧版本: 问题来了 1.下载文件的目录结构 1.Unity的安装程序 2 ...

  6. 多益网络校招前端面经(2020.09.24)

    多益网络校招前端面经(2020.09.24) 面试平台 QQ视频通话 时长 大约半小时 过程 自我介绍 项目问题:项目中遇到的问题以及解决方式:在团队开发过程中个成员合作方式,遇到问题的解决方式 cs ...

  7. 【转】2020/11/17 15:00 网易有道Java实习 一面面经

    2020/11/17 15:00 网易有道Java实习 一面面经如下: 作者:要拿offer丶mata川 链接:https://www.nowcoder.com/discuss/566775?chan ...

  8. 西安尚学堂练习09.17|Java编程笔试面试题

    下列哪些类型能被throw语句抛出? A. Error B. Exception C. Throwable D. Object [解]注意Error也是可以被throw的,只是通常Error出现程序就 ...

  9. 2020. 09 青少年机器人技术等级考试理论综合试卷(一级)

    2020. 09 青少年机器人技术等级考试理论综合试卷(一级) 一. 单选题(共 30 题, 共 60 分) 1.使用下列工具不能省力的是? ( ) A.斜面 B.动滑轮 C.定滑轮 D.省力杠杆 试 ...

  10. linuxoracle静默安装应答文件修改_Windows7重要更新补丁安装包 2020.01.17

    2020年1月14日微软官方宣布正式停止支持Windows 7(以下简称Win7),除付费政企用户外,不再提供安全补丁或者更新服务.那么以后win7的更新要怎么办?难道只能"裸奔" ...

最新文章

  1. 学精算的计算机知识,精算学专业学什么 附学习科目和课程
  2. IOS 多线程的一些总结
  3. 「OS」Centos7安装Nvidia驱动
  4. Windows部署服务WDS实例
  5. P1527 [国家集训队]矩阵乘法 整体二分 + 二维树状数组
  6. 配置Ubuntu系统环境变量
  7. c语言封闭曲线分割平面_餐饮空间设计之平面合理布局
  8. SpringBoot实战(九)之Validator
  9. 接VS2010+Net+MVC3+EF4.1环境下的Code First一文的补充说明
  10. SPSS T检验(图文+数据集)【SPSS 017期】
  11. MVPArms实现本现数据缓存
  12. Hamcrest包含匹配器
  13. ChartControl动态添加曲线,X轴Label间隔显示
  14. 高等数学学习笔记——第九十讲——斯托克斯公式
  15. nfs总结之工作原理
  16. 6条开会清单,教你组织一场高效会议!
  17. POJ 1637 混合图的欧拉回路 + Dinic
  18. strtok、strtok_s、strtok_r 字符串分割函数
  19. android系统关机广播,Android开机广播和关机广播
  20. Mathcad_excel数据处理

热门文章

  1. 读源码学C之阅读李恒的bioawk
  2. Ubuntu16.04搭建caffe环境(cpu-only)与Python调用
  3. windows 2008 enterprise tcpip.sys问题总结。
  4. 5G时代 我国在通信技术领域弯道超车指日可待
  5. MYSQL百万级数据,如何优化
  6. 游戏数学中的数学思想
  7. ASP.NET中上传下载文件
  8. 2008春节长白山哈尔滨雪乡游
  9. hdu 5419(数学期望)
  10. NYOJ 84 阶乘的0 数论