ADSP-21565的SigmaStudio图形化编程详解
作者的话
ADSP-21565作为ADI的SHARC类DSP,也是可以使用SigmaStudio(简称SS)或者SigmaStudio Plus(简称SS+)来做图形化编程的。在ADSP-21569的评估板上,我们写了非常详细的操作流程,现在轮到21565了。
在做21565的图形化编程之前,我们需要先看完21569的SigmaStudio开发文档,了解整个开发逻辑和详细流程之后,再回来看本文档。
阅读前置文档
文档名为:“前置阅读:ADSP-21569EVB开发板的图形化编程详解.pdf”,把它读完,我们再回头来做21565的SS开发。
软件准备
我们先用SS来做,所以需要安装的软件:
CCES2.11.1(我用的是这个版本,它是必须首先要装的)
SigmaStudio4.7
SigmaForSHARC4.6
SigmaStudio Plus 2.4.0(注意,装这个是要用到里头的Fireware工程,文章后面会讲)
硬件准备
ADSP-21565开发板 一块
产品链接:https://item.taobao.com/item.htm?id=724290880282&spm=a21xtw.29178619.0.0<k2=17537807403329afwimgsf3sxz1mq2xat7h
AD-HP530ICE仿真器 一个(或AD-ICE2000仿真器)
https://item.taobao.com/item.htm?id=724290880282<k2=17537807403329afwimgsf3sxz1mq2xat7h&spm=a21xtw.29178619.0.0
USBi仿真器 一个
https://item.taobao.com/item.htm?id=38242936768<k2=17537807781694bl3w9jzvg4i3etpojyy4&spm=a21xtw.29178619.0.0
5V2A电源适配器一个
3.5mm耳机一个
USB线若干
硬件链接示意图
- AD-ICE2000仿真器(或AD-HP530ICE,我用的是ICE-2000)插上开发板的JTAG,有防反插,直接怼;
- USBi仿真器插上开发板的USBi JTAG,有防反插,直接怼;
- 5V2A电源适配器插上;(此刻6-电源开关是默认OFF的)
- 3.5mm耳机接音频输出接口;
- AD-ICE2000仿真器通过MINI USB线接PC,上电;
- 开发板电源开关拨到ON,给开发板上电;
- USBi接口先空置,不要用USB线接PC,很重要。
SS开发第一步,先运行Fireware(FW)
我们读完前置文档,通过21569的SS开发应该能够了解到,SHARC DSP要做SS图形化编程,首先要在CCES软件中运行FW工程。21569的FW工程是ADI直接提供的,我们拿过来直接可用,非常方便。
但21565没有FW工程,这也是开发板面世很久,我都没有写这个SS开发21565教程,实在是搞不到这个最关键的FW程序。
有兄弟会说21569和21565都是同一个内核,差别仅仅是569有外部总线,可以接DRAM,565没有外部总线,不能接DRAM,难道569的FW不能直接用在565上吗?答案是不可以,因为569的这个FW工程恰巧用到了DRAM,565又没有DRAM,用565运行这个569的FW会直接报错,用不了。
正确的解决办法就是用21569的FW来改出一个21565的匹配工程来,让FW在DRAM下内容都转到565的SRAM里运行。
我们先找到这个工程,FW工程就用ADI最新提供的,在SS+2.4.0安装目录下:
要用这个工程改,我们先把整个文件夹拷贝到一个新建的文件夹里,别把软件安装目录里的程序弄乱了:
注意,从Exmaples拷,不要单独只拷贝21569的工程。
也许21569会调用这里的内容,所以我们就索性全拷出来。
再下一个目录就能找到我们要用的21569的FW。
把21569的FW改成21565的工程
注意,这只是OP自己摸索的,并没有完全改完,仅做参考。
前面有写怎么导入一个CCES工程,就不多说,先导入,看下图:
我们先点System.svc,把21569的外存给禁用掉。
1.点System.svc;
2.选择Startup Code/LDF;
3.点LDF;
4.把这个Use external…的√点掉,这样就意思我不用外存了。
再把工程属性改成21565:
把工程属性改成21565之后,再去工程里改一个参数:(注意我这个修改都是我自己的想法,可能改的并不对,或者说不完全对,仅做参考,兄弟们可以把这个工程研究透了后自己改)
上面这个app.ldf就是管内存分配的,我是这么考虑的,既然21569和21565的差别就在内存,那我就改内存,把一切569用外存的,都给他指到内存里来,是不是就可以了。
红框里的就是我指的,把mem_L2_bw改成0x200b9fff,暂时就改了着一个地方。
保存工程后,先010编译一下:
在DEBUG文件夹里,我通过编译这个工程生成了最新的符合这个工程的DXE,这个是后面要用到。
文件更新时间就是我此刻的时间,就说明我的dxe是生成成功了。
下一步就可以运行工程了:
具体操作我就不多说了,之前的文档有写,我就说一下注意事项:
1.注意我用的是ICE-2000,所以我的session选的就是ICE-2000;
2.DXE注意别弄错了,可以手动选择咱们刚才生成的dxe;
然后Debug:
点运行后,Console这里不会有任何多的打印。
以上,FW就在21565上运行起来了。
再一次特别注意,这个FW是我自己改的,就改了这些地方,我觉得可能是不够的,写出来也是抛砖引玉,既然ADI没有提供现成的,还是得需要兄弟们自己整了。
SS的配置和开发
FW运行起来之后,就可以做SS的开发了,这个时候我们可以把USBi仿真器接PC了。
打开测试工程:
我们先做DXE的配置:
调出这个界面后,从1这里点选择DXE,就选择我们在FW修改完后,010出来的DXE:
这就表示加载完了,看路径确认一下,就是我们在Debug文件夹里得到的DXE。
再回到程序界面:
程序很简单,我选了一个白噪声的模块,然后接0/1输出,就是DSP自发生一个白噪声,通过板子的DA后,输出给0/1接口,通过耳机听到这个白噪声。
在线下载程序:
需要等个10几秒,然后就会出现下图:
就表示下载成功了,我们再打开白噪声开关,让DSP开始产生白噪声:
此刻我们通过耳机就能听到来自DSP给出的白噪声了。
后记
特别强调,这个FW并没有改完全,所以目前是能用DSP自发生后DA输出,这个通道是打通了,但模拟音频AD进DSP,这个通道没有打通,所以暂时还无法实现在SS里,模拟音频输入,经过DSP后,DA输出的功能,我们还在继续改,也许下一版的FW就可以实现了,这个详解就是抛砖引玉,兄弟们自己改也能有个参考。