基于CCS的双核芯片的DSP端开发

DSP CCS 双核
汉云
发布时间: 2019-03-26
阅读: 918

由于双核心的异构处理器,一个是DSP内核一个是ARM内核,官方提供的开发方式都是在Linux下的,这样,对于DSP的程序,也是要使用makefile进行工程管理的,对于使用习惯了CCS类的IDE的小伙伴,可能都不太适应,而且还有大量的库文件以及很复杂的依赖关系,在开发时,往往是手足无措。那么我们就把Linux下的DSP工程,移植到windows或是Linux下的IDE 中来开发,使用IDE进行工程管理。

首先,要了解工程的结构,对于最基本的DSP工程,是还没有添加库函数的,所以这里只是一个工程中最小的功能性的组成。


├── dsp

│   ├── bin

│   │   ├── debug

│   │   │   ├── obj

│   │   │   │   ├── main_dsp.oe674

│   │   │   │   ├── server_dsp.xe674.map

│   │   │   │   └── Server.oe674

│   │   │   └── server_dsp.xe674

│   │   └── release

│   │   ├── obj

│   │   │   ├── main_dsp.oe674

│   │   │   ├── server_dsp.xe674.map

│   │   │   └── Server.oe674

│   │   └── server_dsp.xe674

│   ├── configuro

│   │   ├── compiler.defs

│   │   ├── compiler.opt

│   │   ├── config.bld

│   │   ├── custom.mak

│   │   ├── linker.cmd

│   │   ├── package

│   │   │   ├── build.cfg

│   │   │   ├── cfg

│   │   │   │   ├── Dsp_pe674.c

│   │   │   │   ├── Dsp_pe674.cfg

│   │   │   │   ├── Dsp_pe674.cfg.dot

│   │   │   │   ├── Dsp_pe674.cfg.xml

│   │   │   │   ├── Dsp_pe674.dep

│   │   │   │   ├── Dsp_pe674.h

│   │   │   │   ├── Dsp_pe674.mak

│   │   │   │   ├── Dsp_pe674.oe674

│   │   │   │   ├── Dsp_pe674.oe674.dep

│   │   │   │   ├── Dsp_pe674.rov.xs

│   │   │   │   ├── Dsp_pe674.rta.xml

│   │   │   │   ├── Dsp_pe674.xdc.inc

│   │   │   │   ├── Dsp_pe674.xdl

│   │   │   │   └── Dsp.xe674.mak

│   │   │   ├── configuro.ccs

│   │   │   ├── configuro.class

│   │   │   ├── configuro.java

│   │   │   ├── configuro.pjt

│   │   │   ├── configuro.sch

│   │   │   ├── internal

│   │   │   ├── lib

│   │   │   ├── package.bld.xml

│   │   │   ├── package_configuro.c

│   │   │   ├── package.defs.h

│   │   │   ├── package.xdc.dep

│   │   │   ├── package.xdc.inc

│   │   │   └── rel

│   │   │   ├── configuro.xdc.inc

│   │   │   └── configuro.xdc.ninc

│   │   ├── package.bld

│   │   ├── package.mak

│   │   ├── package.xdc

│   │   └── package.xs

│   ├── Dsp.cfg

│   ├── main_dsp.c

│   ├── makefile

│   ├── Server.c

│   └── Server.h

├── host

│   ├── App.c

│   ├── App.h

│   ├── bin

│   │   ├── debug

│   │   │   ├── app_host

│   │   │   ├── app_host.map

│   │   │   └── obj

│   │   │   ├── App.ov5T

│   │   │   ├── App.ov5T.dep

│   │   │   ├── main_host.ov5T

│   │   │   └── main_host.ov5T.dep

│   │   └── release

│   │   ├── app_host

│   │   ├── app_host.map

│   │   └── obj

│   │   ├── App.ov5T

│   │   ├── App.ov5T.dep

│   │   ├── main_host.ov5T

│   │   └── main_host.ov5T.dep

│   ├── main_host.c

│   └── makefile

├── makefile

├── products.mak

├── readme.txt

├── run.sh

└── shared

├── AppCommon.h

├── config.bld

└── SystemCfg.h


这里的头文件与C文件,都是与windows下一样的,而makefile是对工程进行编译时使用到的,这里当使用到CCS后,就不再使用这个文件了,而最主要的就是Dsp.cfg文件了,这个文件是比较重要的,这个是使用syslink进的一个配置文件。



还有一个文件在shared中的config.bld。这是对DSP内存进行分析的一个文件,内存分配不对的话,工程可能不会有语法错误,但是会在双核心系统运行时,出现内存溢出或是参数错误的情况,这里在格外注意,否则后期再找错误就很费时间了。

这里是把所有的内存分成了几个部分,分别分配给LinuxDSP使用,内存间不可以有重叠的部分,最好也是要按字节对齐。



无标题dfgqw34tfs.png




有上这些,我们就可以在CCS中新建一个工程,再移植这些配置信息了。


首先,新建一个CCS的工程,这里就不再细说了,新建工程都不会的话,那么就真的太……

新建工程时,选择的工程类型是Code Composer Studio下的CCS Project



无标题dfgqw34tfs.png





详细的配置如上,这里要指定你的芯片类型,还有要指定是DSP下的工程,也就是内核要选择成C674x的,这个是这个芯片的DSP内核的型号,工程类型这里进一步选择是SYS工程,选择典型工程即可以。





下一步后,配置如下图,这里选择好SYS的版本,这个版本是要与软件的版本与Linux的版本要对应的。


无标题dfgqw34tfs.png




这里先选择的是evm开发板的platforms配置文件,后面,我们要建一个针对自己的开发板的配置文件,其实内存的配置是差不多的,但是在缓存与内存总大小是不一样的,所以分配的地址空间也不一样,就要在IDE下重新进行建立一个配置文件了。

要选择新建中的其他类型,才可以找到platforms配置文件的,如下图



无标题dfgqw34tfs.png




在如下图的新建界面选择New RTSC Platform


无标题dfgqw34tfs.png



按如下图配置,设置名称与芯片的类型与芯片的型号。


无标题dfgqw34tfs.png



再一下步就是重点了,这要按之前的config.bld来分析内存与缓存了。

由于这里默认的配置与我们的开发板上的是完全不一样的,要全部删除后重新建立,所以,对于这些内存分配的控制可以按下图的方式删除与添加。添加时,按config.bld文件中的地址进行添加。


无标题dfgqw34tfs.png



下面,对config.bld文件进行分配。


如下图所示,绿色的为External memory ,黄色的是地址与偏移长度,这里要设置好的。注意,这里由于是分配的外部的DDR的内存,而不是芯片内部的RAM,所以这里统一都要设置在External memory这一栏中。

比如SR_0这一块,起始地址是0xC2000000,长度为0x10000,即64K。依次类推,SR_1128KDSP_PROG8M的空间。

并且要将芯片片上的RAM都设置成缓存,也就是使能L1DL1PL2的缓存功能。



无标题dfgqw34tfs.png




最后的配置界面内容如下。



无标题dfgqw34tfs.png





最后,在工程的属性界面,重新配置工程的platforms配置文件,也就是修改成我们新建的这个platforms配置文件,再把工程中的源文件与头文件都添加到新的工程中,把原文件删除后,这个工程就算是移植完成了。


到此,基于IDE的双核心芯片下的DSP工程就移植好了,编译一下,生成了out文件,把out文件复制到开发板,并通过syslink的工程进行加载。


无标题dfgqw34tfs.png







加载成功会有下的输出。其中,run.sh是加载DSP程序的脚本,之前使用一条条的命令加载,写与脚本方便好多,可以把DSP程序与驱动一起加载。



无标题dfgqw34tfs.png









原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

点赞 (0)
汉云 擅长:无
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)