资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机控制系统实验第1节 实验软件介绍一、CCS实验环境1、准备首先将实验台上的仿真器(ICETEK-5100USB)连接到电脑USB接口上,如果连接良好,仿真器上绿色Run和红色Power指示灯会亮。连接好实验台电源线,然后打开实验台电源开关,给系统供电。2、进入CCS 双击桌面图标,进入如图1.1界面所示图1.1 进入CCS后的界面3、一个工程中包括的文件1)头文件“Include”文件夹下后缀是“.h”的文件就是2812的头文件。头文件的作用是定义了2812内部寄存器的数据结构。在一般情况下头文件并不需要修改,用户可以将在整个工程内都具有作用域的全局变量在头文件中进行定义。Test例程中的头文件如图1.2所示。头文件一般由三部分内容组成:头文件开头处的版权和版本声明、预处理块以及函数和类结构声明等。在头文件中,用ifnde/define/endif结构产生预处理块,用#include格式来引用库的头文件。发现头文件的主要作用在于调用库功能,对图1.2 test例程中的头文件各个被调用函数给出一个描述,其本身不包含程序的逻辑实现代码,它只起描述性作用,告诉应用程序通过相应途径寻找相应功能函数的真正逻辑实现代码。用户程序只需要按照头文件中的接口声明来调用库功能,编译器会从库中提取相应的代码。2)库文件“Libraries”下的库文件是C语言系统的库文件,在CCS2.0下的File View面板中“Libraries”下是看不见的,在CCS3.0以上的版本才能看见。库文件的作用是将函数封装在一起编译后供用户调用。使用库函数的优点在于编译后的库文件看不到源代码,保密性较强,同时不会因为不小心修改了函数而出问题,便于维护。2812的库函数可以在“D:Program Filestic2000cgtoolslib”(若安装时更改了路径,可在安装目录下寻找)路径下找到。3)源文件用户开发时编写的软件代码都是保存源文件中,这些文件都是以“.c”或“.asm”为扩展名的,图1.3所示sourece目录下的文件为test例程中的源文件。下面来分析一下该文件夹下各个源文件的内容,以便于更好地理解和采用这种文件结构。DSP28_CpuTimers.c CPU定时器的初始化和配置函数,与CPU的定时器相关。DSP28_Defau1tIsr.c 包含了2812所有的中断函数,写中断时,只要将程序写在对应的函数内就可以,大大保证了中断的成功率。DSP28_GlobalVariableDef.c 全局变量的定义,这个文件也很重要,定义了2812的寄存器、中断向量表等内容。图1.3 test中的源文件DSP28_PieCtr1.c PIE初始化函数,和中断相关。DSP28_PieVect.c PIE中断向量表定义以及初始化。DSP28_Spi.c 外设SPI的初始化函数,只和外设SPI相关。DSP28_SysCtrl.c 系统初始化,主要对开门狗、时钟等模块进行初始化,以保证2812正常工作。以上为TI公司提供,一般TI公司都会针对出品的芯片提供对应的外设使用函数,用户可以直接调用或者稍作修改,以减少开发系统的工作量。DSP281x_CodeStartBranch.asm,设置跳转到用户程序的C入口点的 _c_int00(_c_int00负责初始化C环境、申请堆栈、初始化有初值的变量等)和看门狗使能。TI公司提供。test.c main函数所在的文件,每个工程只能有一个main函数,程序开始是从main开始的。为用户主要编写源程序的位置。4)CMD文件如图1.4所示是例程中的CMD文件,这个文件的作用是用来分配存储空间的。由于DSP编译器的编译结果是未定位的,DSP也没有操作系统来定位执行代码,DSP系统的配置需求也不尽相同,因此可以根据实际的需求,自己定义代码的存储位置。链接器命令文件CMD由三部分组成:输入/输出定义,MEMORY命令和SECTION命令。输入/输出定义这部分包括输入文件名(目标文件.obj、库文件.lib和交叉索引文件.map)、输出文件.OUT和链接器选项。链接器命令文件含有链接时所需要的信息。命令文件的开头部分是要链接的各个子目标文件的名字,这样链接器就可以根据子目标文件名,将相应的目标文件链接成一个文件;接下来就是链接器的操作指令,这些指令用来配置链接器;接下来就是MEMORY和SECTIONS两个伪指令的相关语句,必须大写。MEMORY用来配置目标存储器,SECTIONS用来指定段的存放位置。CMD文件又分成两种,一种是分配RAM空间的,用来将程序读取到RAM内进行调试,因为大部分时间都是在调试程序,所以多用这类CMD文件,工程中的“F2812_EzDSP_RAM_lnk.cmd”就是用于分配RAM空间的。另一种是分配FLASH空间的,当程序调试完毕后,需要将其烧写到FLASH内部进行固化,这个时候需要使用这类CMD文件。“DSP281x_Header_nonBIOS.cmd”是外设寄存器链接命令文件,将头文件中定义的外设结构体分配到正确的存储器映射空间。图1.4 test程中CMD文件4、建立一个工程点击菜单栏中的“Project”按钮,会出现如下图所示的界面,然后选择“New”,如图1.5所示的界面。图1.5 新建一个工程执行菜单命令“Project”“New”,弹出“Project Creation”对话框。在“Project”文本框中输入工程名称“test”, 在“Location”区域选择工程所要保存的路径“D:Program FilesICETEKF2812As60F2812AS60DSP281x_examples”,如图1.6所示。图1.6 Project Creation对话框单击按钮,CCS就创建了一个新的工程,如图2.7所示。图2.7 创建一个新的工程5、向工程添加文件工程文件创建好后,开始向工程中添加文件,包括源文件、库文件、ASM文件以及CMD文件。在向工程中添加文件之前先要建好所需要的工程文件。1)建立一个“test.c”文件,执行菜单命令“File”“New” “Source File” ,或者执行“Ctrl+N”,如图1.8所示,然后点击“保存”按钮,将其保存为“test.c”在工程文件夹test下,然后就可以在其中编写实现特定功能的源代码。图1.8 新建一个.c文件2)执行菜单命令“Project”“Add Files to Project” ,选择上一步保存的“test.c”,然后单击按钮,将源文件添加到工程中。3)执行菜单命令“Project”“Add Files to Project”,在 “D:Program FilesICETEKF2812As60F2812AS60DSP281x_commonsource”目录下加入已经编写好的工程所需的源文件(.c),如图1.9和1.10所示。图 1.9 工程加入c文件图1.10 本工程所需.c文件4)执行菜单命令“Project”“Add Files to Project”,在根目录“D:Program FilesICETEKF2812As60F2812AS60DSP281x_commonsource”中选择“DSP281x_CodeStartBranch.asm”,如图1.11所示,然后单击按钮,将该文件添加到工程中。图1.11 项工程中添加“.asm”文件5)执行菜单命令“Project”“Add Fi1es to Project”,在弹出对话框的查找范围中找到目录:“D:Program FilesICETEKF2812As60F2812AS60DSP281x_commoncmd”,选择“F2812_EzDSP_RAM_lnk.cmd”,然后单击按钮,将CMD文件添加到工程中; “D:Program FilesICETEKF2812As60F2812AS60DSP281x_headerscmd”中的“DSP281x_Headers_nonBIOS.cmd”加入到工程中。这两个CMD文件包含程序段到存储器的映射。6)执行菜单命令“Project”“Add Files to Project”,在弹出对话框的在弹出对话框的查找范围中找到目录“D:Program Filestic2000cgtoolslib”。选择“rts2800_ml.lib”,然后单击按钮,将库文件添加到工程中。该库文件对目标系统DSP提供运行支持。在以上的操作中并没有将头文件加载到工程中,CCS将在创建时自动查找所需要的头文件。当创建完成时,可以再Project视图中看到生成程序所需要的头文件。6、 查看源代码双击Project View中的 “ .c” 文件,可在窗口的右半部看到源代码。如想使窗口更大一些,以便能够即时地看到更多的源代码,可以选择“Option”“Font”更改窗口中的文字的字体、颜色和大小。双击Project View中的“test.c”可以查看其中的源代码如图1.12所示。图1.12 一个工程中的部分源代码二、编译和运行程序1) Project菜单执行菜单命令“Project”“Rebuild All”或者在“Project”工具栏上单击图标,开始对程序进行编译、汇编和链接,“Output”窗口将显示进行编译、汇编和链接的相关信息,如错误、告警执行菜单命令“Project”“Build”或者在“Project”工具栏上单击图标,开始对编译和链接,对那些没有修改的源文件,CCS将不重新编译。执行菜单命令“Project”“Compile File”或者在“Project”工具栏上单击图标,对C或汇编源文件进行编译。2)File菜单执行菜单命令“File”“Load Program”,打开如图1.13所示“Debug”文件夹,选择选择刚编译过的程序的输出“test.out”并将其打开。CCS把程序加载到目标系统DSP上,并打开如图1.14所示的反汇编窗口,该窗口显示反汇编指令。图1.13 下载文件时的窗口图1.14 反汇编窗口执行菜单命令“File”“Reload Program”,重新加载COFF文件,如果程序未做更改则只加载程序代码而不加载符号表。3) Debug菜单执行菜单命令“Debug”“Run”,或者点击图标,运行程序,碰到断点将暂停程序。执行菜单命令“Debug”“Animate”,或者点击图标,运行程序,碰到断点时程序暂停运行,在更新未与任何Probe Point相关联的窗口后程序继续运行。执行菜单命令“Debug”“Halt”,或者点击图标,终止程序运行。执行菜单命令“Debug”“Go Main”,可以把刚编译好的文件跳转到main函数,然后开始单步调试执行菜单命令“Debug”“StepIn”,或点击图标,单步运行,如遇到子函数会进入到子函数,然后单步运行。执行菜单命令“Debug”“StepOver”,或点击图标,执行一条C或者汇编指令,为保护处理器流水线,该指令后的若干条延时分支或调用将同时执行执行菜单命令“Debug”“Run to Cursor”,或点击图标,执行到光标处,光标所在行必须为有效的代码行。光标放在想要设置断点的行点击图标或者双击的最左边的灰色边框,可以设置断点,设置
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号