DSP_BIOS简单实例教程.doc_第1页
DSP_BIOS简单实例教程.doc_第2页
DSP_BIOS简单实例教程.doc_第3页
DSP_BIOS简单实例教程.doc_第4页
DSP_BIOS简单实例教程.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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对象的配置文件。1) 打开项目myhello.mak。(在D:hanstudy2目录下)2) File New DSP/BIOS Config。3) 选择对DSP板的类型,确定。此时弹出一界面窗口。4) 右击LOG-Event Log Manager,并选择Insert LOG,这样建立一个名为LOG0的LOG对象。5) 右击LOG0,选择Rename,改名为“trace”。6) File Save。保存于工作目录下,配置文件名为myhello.cmd。保存此配置直接产生以下文件: myhello.cdb:保存配置的设置。 myhellocfg.cmd:连接器命令文件。 myhellocfg.s62:汇编语言源文件。 myhellocfg.h62:包含在myhellocfg.s62中的汇编语言头文件。尽管这些文件拥有.s62和.h62的扩展名,它们也可应用在TMS320C6701中。DSP/BIOS不需要使用TMS320C6701支持的浮点指令,因此支持二者DSPs只需一种版本的软件。步骤2:加载DSP/BIOS文件到项目中在此,加载上面生成的新文件于工作目录中,并移走它们替代的文件。1) Project Add Files to Project 。选择myhello.cdb。这样在项目下DSP/BIOS Config中加入了myhello.cdb。此外,CCS自动地在项目下源文件夹中加入myhellocfg.s62文件。2) 输出文件的文件名必须与.cdb文件名相匹配(myhello.out和myhello.cdb)。选择Project Options,点击Linker标签,在output文件框中,确认myhello.out为文件名。3) project Add File to project。选择myhellocfg.cmd文件,确定。此时,出现一警告板,单击“Yes”。这样,在保存配置文件是生成的新的.cmd文件代替旧的文件(hello.cmd)。4) 在项目目录树中,右击源文件vectors.asm,选择Rename from project,从项目中移走此文件。硬件中断向量会被DSP/BIOS配置文件自动定义。5) 同样移走rts6201.lib文件。此库文件自动包含于myhellocfg.cmd文件中。6) 双击打开hello.c文件,选择View Mixed Source/Asm来隐藏其汇编代码。7) 改变源文件的内容,替换主函数,因为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等待软中断和硬中断的出现。8) 保存文件。Project option。在Compiler标签下,Category框中选择Preprocessor,移走右边Define symbols框中的FILEIO。9) Project Rebuild All 。步骤3:用CCS来进行测试由于程序只写了一行到一个LOG,在此无须进行分析。1) File Load program,选择刚刚重建的文件myhello.out,确定。2) Debug go main。3) Tools DSP/BIOS Message Log。此时在CCS窗口底部出现一消息区域。4) 在此消息区域上右击,选择Property Page 。5) 选择trace作为监测记录(the log to monitor)的名字,确定。默认更新率为1次/秒。(改变更新率,Tools DSP/BIOS RTA。在RTA控制面板上右击并选择Property Page。选择一个新的更新率,确定。)6) Debug Run或F5。则hello world显示在消息记录区域。7) Debug Halt或shift F5停止程序的执行。在主函数返回之后,程序处于DSP/BIOS空循环状态,直至出现一个事件。8) 关闭Message Log窗口。(这是必需的一步)9) Tools RTDX。打开RTDX控制窗口。选择RTDX Disable,在下拉列表中,在RTDX区域上右击,选择Hide。注意:profiling与RTDX在一些目标板上不能同时应用。DSP/BIOS插件程序(plug-ins)使用RTDX来进行主机/目标间的通信。在一些DSP目标板上(例如,TMS320C6201),不能同时使用profiling和RTDX。关闭所有使用RTDX的工具,在使用profiling之前,例如Message Log和其它DSP/BIOS plug-ins。为确保取消RTDX,特别是在使用DSP/BIOS plug-ins之后,选择Tools RTDX来打开RTDX plug-in。选择RTDX Disable在下拉列表中,右击,选择Hide。相反地,在使用profiling之后,使用RTDX之前释放protiler资源,如同教程1步骤8末尾所描述的那样。如尝试同时使用RTDX和profiling,则会出现一个错误信息。步骤4:DSP/BIOS代码执行时间的性能分析以前,使用CCS性能分析特性得到周期数需要调用puts()。现在,通过调用LOG_printg来完成相同的工作。1) File Reload program。2) Profiler Enable Clock。3) 打开hello.c文件。4) View Mixed Source/ASM。5) 将光标置于LOG_printf(&trace,“hello world!”);行。6) 点击Toggle profile-point 按钮。7) 将光标置于程序的最后一行,点击Toggle profile-point按钮。注意:此最后一行并不是return行,而是大括号“”行。8) profiler View statistics。9) 要使在View statistics窗口中的行数为正序,即行数从上向下,从小变大。10) 点击Run或F5,运行程序。11) 注意指令周期数应为第二个profile-point。其值大约为36,这是执行调用LOG_printf所必需的周期数。调用LOG_printf是生效的,因为一系列格式化的执行在主机上要好于在目标DSP上。12)点击Halt或shift F5,停止程序的运行。步骤5:试一试为进一步了解CCS,试一试以下的内容: Load myhello.out,并设置一断点于LOG_printf行。用Debug Breakpoints来加入一个断点于IDL_F_Loop。(在位置条输入IDL_F_Loop,单击Add)。运行程序。在第一个断点,View Cpu registers Cpu register观察寄存器值列表。注意GIE为0,此表示当主函数(main)正在执行是中断无效。继续运行程序至下一断点。此时GIE为1,此时中断生效。如果运行程序,不断访问此断点。在启动过程和主函数完成之后,一个DSP/BIOS进入一空循环。此循环由IDL模块处理,直到停止程序的运行。此空循环带有中断使能并且可以通过任何ISR(中断服务程序),或软中断,或事件触发一操纵实时处理应用程序,在任何点优先取得。 在MS-DOS窗口中,以下列命令运行sectti.exe:cd c:tic6000tutorialhello1sectti hello.out hello1.prncd hello2sectti hello.out hello2.prn当使用stdio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论