专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
DSP
Davinci DM6446开发攻略——DSP开发工程建立
2019-07-13 11:15
发布
生成海报
站内文章
/
DSP
11806
0
1628
【原文:
http://zjbintsystem.blog.51cto.com/964211/304631/
】
前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油、国外核心转基因调和油、大豆油、 {MOD}拉油、大米玉米、可怕的喂药鱼、药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间。还好,这个世界上还有很多善良和正义的人们,值得我们继续战斗下去。
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.3C6000cgtoolslib
)里的
rts64plus.lib
。还有其他
LIB
,比如自己开发的
*.lib
,
c6400dspliblib
下的
dsp64x.lib
,
c6400imgliblib
下的
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
结合起来。
五、
声明
写了这几篇开发攻略的文章,很多朋友看到本人的
QQ
后,都把本人的
QQ
加上,本人的
QQ
是用来和客户洽谈生意,并给购买本人产品的客户提供技术支持。没有这个条件的朋友最好通过博客留言,大家一起讨论不是更好,因为本人不是老师,也不是职员,很多时间要为自己的生活奔波。如果大家对
DM6446
核心板、
DM6437
核心板,开发板或者项目合作感兴趣,可以聊聊。我们的目的就是辅助客户快速设计自己的产品,便于抢占市场。
Ta的文章
更多
>>
Davinci DM6446开发攻略——DSP开发工程建立
0 个评论
嵌入式Linux字符设备LED驱动-基于树莓派
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮