Davinci DM6446――DSP开发工程建立

DAVINCI DSP 的开发环境分两部分来讲,一是单核 DSP 运行的环境,二是和 ARM 建立相互通信 DSP SERVER 机制。本片先从简单的单核 DSP 运行环境说起,因为这个是基础的必须的东西,同时适合 DM643X DM644X 平台。说到 DSP 的开发环境,当然离不开 CCS ,仿真器安装调试等步骤,这些很多网友都发表过不错的文章。本人重点介绍 DM6446 DSP 开发环境。
 
一、 CCS 安装介绍
目前 CCS4.0 已经出来,网上有篇文章《 CCS V4 SEED 仿真器基本操作指南 .pdf 》的介绍,大家可以了解一下,功能比 CCS3.3 强大多了,而且配置也比较简单。但鉴于国内主流开发 DAVINCI CCS 版本是 3.3 ,所以在这里具体介绍一下。
购买合众达仿真器或闻亭仿真器,都会提供 TI CCS3.3 ,网上也有下载,安装之前,建议把各种杀毒软件先关闭掉,然后运行文件包里的 setup.exe ,会提示你的安装路径选择和平台选择界面,见下图:
如果不是开发 OMAP 芯片、 C2000 C5000 平台芯片,这些可以参考上图,把他们 X 掉,这样 CCS 安装就更省空间。 TMS470 C6000 平台一定要选, TMS470 包括 ARM9 的驱动和配置, C6000 包括 C64 C64+ C67 。然后点击“ Next ”,按提示安装下去。
 
二、 仿真器驱动安装介绍
选用仿真器,一般就是合众达 SEED 和闻亭了,开发 DAVINCI 平台,都必须用到 560 型仿真器, 510 是不行的,不知道 TI 当时是怎么想的,仿真器如此贵,也不便于 DAVINCI 平台的推广。三年前 PCI 560 8000 多) USB 560 (上万元)都非常贵,后来推出 560 PLUS 一般都要 4000 左右。购买两家公司的仿真器都会提供安装光盘,里边有详细的安装介绍,这里不累赘。
三、 建立 DSP BIOS 例子工程
1、  配置 CCS
CCS 安装和仿真器驱动(本人买的是 SEED 560PLUS )结束后,双击桌面 Setup CCStudio v3.3 ,进入配置界面,见下图
主要选择 C64+ 平台, xds560 ,开发 DM6437 ,就选择 C6455 XDS560 这一项,如果开发开发 DM6446 ,就选择 DM6446 XDS560 这一项,然后点击下面“ Add ”,这样在配置 My System 左边出现平台信息。
右键点击“ ARM9_0 ”,选择“属性 properties ”,进入,在 GEL file 输入 dm644x_dvevm_arm.gel
接着,点击“ C6400PLUS_0 ”,选择“属性 properties ”,在 GEL file 输入 dm644x_dvevm_dsp.gel 。一般买开发板都会提供相应的 GEL 文件,最后点击左下边“ Save&Quit ”,保存设置。
为了验证 CCS 安装、仿真器安装和配置是否正确,首先插好仿真器 JTAG ,如果板子有程序,建议把 DM6446 BOOT MODE 设置为 UART 模式,目的让板子发送 BOOTME 命令,板子没程序也会发送 BOOTME ,在这种模式下,才能连接 JTAG 。运行桌面的 CCStudio v3.3 ,见下图,
 
给板子上电,确保上面的安装和配置一切 OK ,右键点击 ICEPICK_C_0 ,“ Connect Device ”能连接上的话,表明仿真器等安装没问题,见下图。
连接设备
连接 ARM
Open ARM9_0 ,设置 DSP DDR BOOT
 
连接 DSP
Open DSP
以上连接如果都 OK 的话,表明仿真环境已经建立好,这时可以做 DSP 开发工作了。不过在进行工程开发之前,补充一点东西,有些朋友喜欢更新较新的 DSP/BIOS 包, DSP/BIOS 是一个实时的操作系统,比如 bios_setupwin32_5_33_06.exe ,或者开发 DM6437 平台,则需要安装 DM6437_DVSDK NDK 等开发包。 CCS3.3 自带的 DSP/BIOS 版本比较低,是 5.31.02 ,安装新的 DSP/BIOS 包后,要对新的 BIOS 版本进行设置,点击菜单上的“ Help ”的“ About ”就会弹出下图:
 
点击“ Component Manager ”,见下图,
选择新的 BIOS 版本,从菜单上“ Save ”,并“ OK ”退出。关闭 CCS ,然后再重新启动 CCS ,新版本的 BIOS 就设置好了。
2、  工程建立
通过以上的步骤,我们可以开发 DSP 程序了, DSP 程序分两种开发模式,算法 LIB 的开发和系统工程开发,或者把 LIB 的源码一起放到工程统一开发。
点击 DSP 界面菜单“ Project ”的“ New ”,出现以下界面,
如果是系统工程开发,输入工程名字,选择工程保存路径,点击 Finish ,就 OK 了。如果是算法 LIB 开发,则按下图选择 .lib
进入工程界面
这里边的工程配置有很多学问,涉及到 DSP/BIOS 的配置和设计,程序运行效率(优化),大部分 DSP 的书籍都有介绍,如果这里要详细一步一步描述,则太浪费时间,我们在这里点到为止,重点介绍 DM6446 DSP 端开发。右键点击工程 ,dm6446_example.prj ,下拉有 Build Options ,这里有 Debug 模式和 Release 模式,运行程序时, Debug 模式可以设置断点等一些功能,但运行效率很低。而 Release 则是正式发布版本模式,对程序做了一些优化,包括流水线等,不能设置断点。我们以 Release 模式为例,见下三图,
 
其他设置保持默认的就可以了,更完善的功能,则需要自己修改,这方面得书籍和网文有很多, CCS 菜单 Help 里也有很多描述详细的文档。
    设置完工程配置后,右键点击 Soure ,添加源码文件 , 一般就是 *.C *.CPP *.asm *.sa 文件,然后添加相应的 *.cmd 文件,有例子可参考。 Include 不需要添加,编译的时候会自动链接到工程配置指定的路径搜索。 Libraries 则需要添加( \CCStudio_v3.3\C6000\cgtools\lib\ )里的 rts64plus.lib 。还有其他 LIB ,比如自己开发的 *.lib c6400\dsplib\lib 下的 dsp64x.lib c6400\imglib\lib 下的 img64x.lib EDMA3 LIB ,这些根据工程和算法程序需要而添加。
对于 DM6446 产品开发,无论采用 TI DSP SERVER 机制,还是独立 DSP 运行模式,都离不开 DSP/BIOS ,下图是新添加 DSP/BIOS 的方法,当然,你也可以直接使用开发板提供商提供的例子,或从网上下载相关带 DSP/BIOS 的例子。选择 ti.platform.evmDM6446
 
 
 
 
   
     
选择“ Global Settings ”,右键进行设置,见下图, DSP 工作频率,看情况设定,商业级 DM6446 采用 594M ,其他设置保持不变。
还是在同一个界面,选择 64PLUS ,关键的地方时 L2CFG ,就是定义 L2 内部存储器 CACHE 的大小,同时使能 MAR 128-159 ,这些 L1D L2 的存取速度比 DDR2 快多了,可惜这两个片上内存很小,不能把很多程序段定义到这些片上内存运行。
同时,因为上面使用了 32K L2 ,则 MEM 下面的 IRAM 处,右键选择属性配置 IRAM len 32K ,否则保存 BIOS 配置文件 *.TCF 时会出现错误,同样设置 DDR 或分配新的内存段(片内和片外),段的地址和长度一定要一一对应,衔接好,不能越界。
然后我们对 MEM 进行设置,同样右键选择 MEM-Memory Section Manager
第一个参数一般为 0x0004 ,第二个参数默认是 0x400 ,太小,我们加大一点, 0x4000 0x8000 0x10000 都可以。“ No Dynamic Memory heaps ”,不选,这样就允许我们在程序里动态申请内存,刚开始是不出现 DDR2 的,你要先“确定”,再右键选择 DDR ,入下图,“ create a heap in this memory ”一定要选中,然后 heap 的大小定义为 0x01000000 16M ,这个大小自己定义。这里设置完后,回到上图, DDR2 就出现在下拉条里。这时候,上图的 BIOS data BIOS code 这些设置都可以定义到 DDR 内存上运行都可以。还有 BIOS 里的 BUF SYS - System Settings Instrumentation Scheduling Synchronization Input/Output
 
介绍到这里,编译自己建的工程是没问题了, CCS 仿真也可以运行程序,有关 Instrumentation 的设置、 Scheduling Synchronization Input/Output 这些在这里就不用累赘了,要认真讲完,完全可以写一本书,其实书店很多 DSP 的书籍都有介绍,网上各大 DSP 的论坛也有人举例如何添加多 TSK PRD HWI SWI SEM MBX 等应用。
 
四、 OUT 文件的处理
生成的 OUT 文件,可以使用 HEX64 产生 BIN 文件,然后通过 ARM ,字节写个 DSP BOOT 的程序,设置控制 DSP BOOT 的寄存器,就可以把 DSP 给运行起来,这是一种独立运行 DSP 的方法,第二种就是下篇要介绍的 TI DSP SERVER 机制,如何把 OUT 文件和 Codec Engine 结合起来。
本文出自 “集成系统-人生观” 博客

你可能感兴趣的:(职场,休闲,Davinci之CCS开发环境)