DSPBIOS简单实例教程.doc
文本预览下载声明
Code Composer Studio 教程(二)
——开发一个DSP/BIOS程序
在此教程中,通过使用DSP/BIOS来优化hello程序。此教程需要一个目标板,而且不可以用一软件模拟器来实现。同时,此教程需要CCS的DSP/BIOS部分。
步骤1:创建一个配置文件
另一种实现hello程序的方法是使用配有DSP/BIOS API的LOG模块(API——应用程序接口)。你可以在加载入的程序中使用DSP/BIOS来提供基本的运行时间服务。API模块使实时DSPs进行最优化。不同于C库调用如puts(),DSP/BIOS在不暂停目标硬件的情况下进行实时分析。另外,API代码占用更小的空间,同时比C标准的I/O运行更快。一个程序可使用一个或更多的DSP/BIOS模块。
在此,修改hello 文件以使用DSP/BIOS API。为应用DSP/BIOS API,一个程序必须拥有一个程序所使用的定义了DSP/BIOS对象的配置文件。
打开项目myhello.mak。(在D:\han\study2目录下)
File —— New —— DSP/BIOS Config。
选择对DSP板的类型,确定。此时弹出一界面窗口。
右击LOG-Event Log Manager,并选择Insert LOG,这样建立一个名为LOG0的LOG对象。
右击LOG0,选择Rename,改名为“trace”。
File —— Save。保存于工作目录下,配置文件名为myhello.cmd。保存此配置直接产生以下文件:
myhello.cdb:保存配置的设置。
myhellocfg.cmd:连接器命令文件。
myhellocfg.s62:汇编语言源文件。
myhellocfg.h62:包含在myhellocfg.s62中的汇编语言头文件。
尽管这些文件拥有.s62和.h62的扩展名,它们也可应用在TMS320C6701中。DSP/BIOS不需要使用TMS320C6701支持的浮点指令,因此支持二者DSPs只需一种版本的软件。
步骤2:加载DSP/BIOS文件到项目中
在此,加载上面生成的新文件于工作目录中,并移走它们替代的文件。
Project —— Add Files to Project 。选择myhello.cdb。这样在项目下DSP/BIOS Config中加入了myhello.cdb。此外,CCS自动地在项目下源文件夹中加入myhellocfg.s62文件。
输出文件的文件名必须与.cdb文件名相匹配(myhello.out和myhello.cdb)。选择Project —— Options,点击Linker标签,在output文件框中,确认myhello.out为文件名。
project —— Add File to project。选择myhellocfg.cmd文件,确定。此时,出现一警告板,单击“Yes”。这样,在保存配置文件是生成的新的.cmd文件代替旧的文件(hello.cmd)。
在项目目录树中,右击源文件vectors.asm,选择Rename from project,从项目中移走此文件。硬件中断向量会被DSP/BIOS配置文件自动定义。
同样移走rts6201.lib文件。此库文件自动包含于myhellocfg.cmd文件中。
双击打开hello.c文件,选择View —— Mixed Source/Asm来隐藏其汇编代码。
改变源文件的内容,替换主函数,因为puts()与LOG_printf使用相同的资源。
注意:此代码的下列部分:
此代码包括std.h和log.h头文件。所有使用DSP/BIOS API的程序必须包含std,h文件,而且头文件适合于任何程序所使用的模块。log.h头文件定义LOG_Obj结构,,并且声明API在LOG模块中的运行。Std.h文件必须优先包含。而包含的拥有模块顺序并不重要。
此代码亦声明在配置文件中生成的LOG对象。
在主函数中,此例调用LOG_printf并忽略LOG对象(trace)和hello world信息的地址。
最后主函数返回,而导致程序进入DSP/BIOS空循环。在此循环中,DSP/BIOS等待软中断和硬中断的出现。
保存文件。Project —— option。在Compiler标签下,Category框中选择Preprocessor,移走右边Define symbols框中的FILEIO。
Project —— Rebuild All 。
步骤3:用CCS来进行测试
由于程序只写了一行到一个LOG,在此无须进行分析。
File —— Load program,选择刚刚重建的文件myhello.out,确定。
Debug —— go main。
Tools —— DSP/BIOS
显示全部