嵌入式电力参数测量系统实验指导书学生用161013.docx

上传人:b****1 文档编号:13782696 上传时间:2023-06-17 格式:DOCX 页数:53 大小:975.16KB
下载 相关 举报
嵌入式电力参数测量系统实验指导书学生用161013.docx_第1页
第1页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第2页
第2页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第3页
第3页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第4页
第4页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第5页
第5页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第6页
第6页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第7页
第7页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第8页
第8页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第9页
第9页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第10页
第10页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第11页
第11页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第12页
第12页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第13页
第13页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第14页
第14页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第15页
第15页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第16页
第16页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第17页
第17页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第18页
第18页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第19页
第19页 / 共53页
嵌入式电力参数测量系统实验指导书学生用161013.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式电力参数测量系统实验指导书学生用161013.docx

《嵌入式电力参数测量系统实验指导书学生用161013.docx》由会员分享,可在线阅读,更多相关《嵌入式电力参数测量系统实验指导书学生用161013.docx(53页珍藏版)》请在冰点文库上搜索。

嵌入式电力参数测量系统实验指导书学生用161013.docx

嵌入式电力参数测量系统实验指导书学生用161013

 

嵌入式电力参数测量系统

 

实验指导书

 

哈尔滨工业大学电气工程系

2012年10月

 

实验1仿真软件的使用

1.1构造DSP开发软件环境

1、安装CCS软件(此文档假定用户将CCS安装在默认目录C:

\CCStudio_v3.3中,同时

也建议用户按照默认安装目录安装)

(1)将实验箱附带的教学光盘插入计算机光盘驱动器。

(2)打开教学光盘的根目录中有“ccs3.3”目录,用鼠标右键单击文件夹中“Setup.exe”,

进入安装程序。

建议您安装时使用默认路径“C:

\CCStudio_v3.3”。

(3)选择“CodeComposerStudio”,按照安装提示进行安装,并重新启动计算机。

(4)安装完毕,桌面上出现两个新的图标,如下图。

1.2设置CCS

1、设置CCS工作在软件仿真环境CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。

但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。

在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。

(1)单击桌面上图标:

进入CCS设置窗口。

(2)在出现的窗口中按标号顺序进行如下设置:

图1.1删除掉原有的驱动设置

(3)在出现的窗口中按标号顺序进行如下设置:

图1.2选择软件仿真F2812芯片驱动

此时CCS已经被设置成Simulator方式(软件仿真TMS320F2812器件的方式),如果一直使用这一方式就不需要重新进行以上设置操作了。

2、设置CCS通过ICETEK-5100USB仿真器连接ICETEK–F2812-A硬件环境进行软件调试和开发。

(1)单击桌面上图标:

进入CCS设置窗口。

(2)在出现的窗口中按标号顺序进行如下设置:

图1.3删除掉原有的驱动设置

 

(3)在出现的窗口中按标号顺序进行如下设置:

图1.4选择硬件仿真F2812芯片驱动

(4)接着在下面的窗口中按标号顺序进行如下选择:

图1.5设置gel文件

(5)在出现的窗口按标号顺序进行如下设置:

图1.6加入gel文件

(6)在出现的窗口按标号顺序进行如下设置:

图1.7退出ccs设置界面

(7)在出现的窗口中按标号顺序进行如下设置:

图1.8保存退出

以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB仿真器连接ICETEK–F2812-A评估板。

如果您需要一直使用这一方式就不需要重新进行以上设置操作了

 

1.3CodeComposerStudio入门

一、实验目的

1、掌握CodeComposerStudio3.3的安装和配置步骤过程。

2、了解DSP开发系统和计算机与目标系统的连接方法。

3、了解CodeComposerStudio3.3软件的操作环境和基本功能,了解TMS320C28xx软件开发过程。

(1)学习创建工程和管理工程的方法。

(2)了解基本的编译和调试功能。

(3)学习使用观察窗口。

(4)了解图形功能的使用。

*CodeComposerStudio3.3主要完成系统的软件开发和调试。

它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。

*用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:

-源程序文件:

C语言或汇编语言文件(*.ASM或*.C)

-头文件(*.H)

-命令文件(*.CMD)

-库文件(*.LIB,*.OBJ)

二、实验步骤

1、实验准备

由于本实验采用软仿真模式,不需硬件设备。

2、设置CodeComposerStudio3.3在软仿真(Simulator)方式下运行

3、启动CodeComposerStudio3.3

成功地启动了CCS后会出现如下窗口:

注:

下面窗口是打开了所有CCS软件功能后显示的。

图1.9CCS软件界面介绍

实际上打开的CCS界面没有上图所示的那么多内容。

原始的刚打开的CCS界面包含如下图的基本元素:

图1.10初始CCS界面

图中的其他部分都是在工作中根据需要打开的。

而且图像和图形显示窗口打开时,还要做一些相关的参数设置才能正常使用,具体的设置方法我们留到后面实验中应用时再详细说明。

4、创建工程

(1)创建新的工程文件

(2)选择菜单“Project”的“New…”项。

图1.11创建工程文件

如下图,按编号顺序操作建立volume.pjt工程文件:

Location选项可选择任意目录。

图1.12新建工程

展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其各项均为空。

(2)在工程文件中添加程序文件:

选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框

中选择文件目录为C:

\ICETEK\F2812\DSP281x_examples\Lab0101-UseCCS,改变文件类型为“CSourceFiles(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述各步骤,添加C:

\ICETEK\F2812\DSP281x_examples\Lab0101-UseCCS\volume.cmd文件到volum工程中;添加C:

\CCStudio_v3.3\c2000\cgtools\lib\rts2800_ml.lib。

(3)编译连接工程:

选择菜单“Project”的“RebuildAll”项,或单击工具条中的按钮;

注意编译过程中CCS主窗口下部“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。

5、编辑修改工程中的文件

(1)查看工程文件

展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包

含“volume.h”、“rts2800.lib”、“volume.c”和“volume.cmd”文件,其中第一个为程序在编译时根据程序中的“include”语句自动加入的。

(2)查看源文件

*双击工程管理窗中的“volume.c”文件,可以查看程序内容。

可以看到,用标准C

语言编制的程序,大致分成几个功能块:

-头文件。

描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。

具体

包含哪一个头文件,需要根据程序中使用了哪些函数或数据而定。

比如:

如果程序中

使用了printf函数,它是个标准C提供的输入/输出库函数,选中“printf”关键字,按

Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为stdio.h,那么

在此部分程序中需要增加一条语句:

#include“stdio.h”。

-工作变量定义。

定义全局变量。

-子程序调用规则。

这部分描述用户编制的子程序的调用规则。

也可以写到用户自己编

制的.h文件中去。

-主程序。

即main()函数。

它可分为两部分:

变量定义和初始化部分、主循环部分。

循环部分完成程序的主要功能。

-用户自定义函数。

这个程序是一个音频信号采集、处理输出的程序。

程序的主循环中调用自定义的函数

read_signals来获得音频数据并存入输入缓存inp_buffer数组;再调用自定义函数

write_buffer来处理音频数据并存入输出缓存;output_signals将输出缓冲区的数据送输出设备;最后调用标准C的显示信息的函数printf显示进度提示信息。

整个系统可以完成将输入的音频数据扩大volume倍后再输出的功能。

read_signal子程序中首先应有从外接AD设备获得音频数据的程序设计,但此例中由

于未采用实际AD设备,就未写相应控制程序。

此例打算用读文件的方式获得数据,模拟代替实际的AD输入信号数据。

write_buffer子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数volume,

然后放入输出缓冲区。

output_signals函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输出设

备,所以函数中未写具体操作语句。

*双击工程管理窗中的“volume.h”文件,打开此文件显示,可以看到其中有主程序中

要用到的一些宏定义如“BUF_SIZE”等。

*volume.cmd文件定义程序所放置的位置,此例中描述了F2812的存储器资源,指定了程序和数据在内存中的位置。

比如:

它首先将可用存储器分为八个部分,每个区给定起始地址和长度(区域地址空间不允许重叠);然后指定经编译器编译后产生的各模块放到哪个区。

这些区域需要根据硬件的具体情况来确定。

(3)编辑修改源文件及编译程序

打开“volume.c”,找到“main()”主函数,将语句“input=inp_buffer;”最后的分号去

掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示;双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS自动保存。

(4)修改工程文件的设置

图1.13修改工程文件

通过以上设置操作,重新编译后,程序中的用户堆栈的尺寸被设置成1024个字。

6、基本调试功能

(1)下载程序:

执行File􀃆LoadProgram,在随后打开的对话框中选择刚刚建立的

C:

\....\Debug\volume.out文件。

(2)设置软件调试断点:

在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,单击鼠标右键选择ToggleBreakpoint或按F9设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记)。

(3)利用断点调试程序:

选Debug􀃆Run或按F5运行程序,程序会自动停在main()函数上。

①按F10执行到write_buffer()函数。

②再按F11,程序将转到write_buffer函数中运行。

③此时,为了返回主函数,按shift-F11完成write_buffer函数的执行。

④再次执行到write_buffer一行,按F10执行程序,对比与F11执行的不同。

提示:

在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用Debug􀃆Gomain命令,上述实验中的使用的是较为繁琐的一种方法。

7、使用观察窗口

(1)执行View􀃆WatchWindow打开观察窗口。

(2)在volume.c中,用鼠标双击一个变量(比如num),再单击鼠标右键,选择“QuickWatch”,CCS将打开QuickWatch窗口并显示选中的变量。

(3)在volume.c中,选中变量num,单击鼠标右键,选择“AddtoWatchWindow”,CCS将把变量添加到观察窗口并显示选中的变量值。

(4)在观察窗口中双击变量,则弹出修改变量窗口。

此时,可以在这个窗口中改变变量的值。

(5)把str变量加到观察窗口中,点击变量左边的”+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。

8、文件输入/输出

下面介绍如何从PC机上加载数据到DSP上,用于利用已知的数据流测试算法。

(1)打开volume.c,找到Read_signals(input),F9设断点

(2)Debug菜单——>Breakpoints,打开断点管理窗口

(3)选中Read_signals(input)所在断点行,点右键菜单,选择Propertywindow...,打开断点属性页

(4)在Action列表框中,选择Readdatafromfile,然后在下边的条目中选择文件名,如sine2.dat

(5)WrapAround项目打勾,显示为True,让文件读到结尾时反绕到文件开头

(6)StartAddress填写文件数据填充到内存的位置,可以填写input,也可以填写数组的地址

(7)Length填写每次从文件中读出的数据长度,填写0x64,或者十进制数100

(8)点击该属性页上端的Sumbitchange按钮,保存设置,如图1.14所示

(9)此时,会出现一个类似播放器的窗口,可以显示和控制从文件读取数据的进度。

图1.14加载数据文件

配置好Probe断点和与之关联的事件后可以通过图形功能显示数据。

9、图形功能简介

    为了更加直观地显示数据波形,可以使用Graph功能,如图1.15所示。

(1)View菜单——>Graph——>Time/Freq...,打开图形属性对话框

(2)缺省是单个图形的显示,SingleTime,在起始地址处填写input,采集缓冲区长度填写100,整个图显示的长度200,即,一张图要两次读取文件才能显示完整。

点击OK,显示出图形窗口,点击右键清显示。

(3)选择DSPDatatype为16位signedinteger

(4)F5运行程序,可以看到随着上述播放器的进度,内存数据变化,刷新图形,sine2波形也会随之变化。

(5)改变SingleTime为DualTime,在起始地址low处填写output,将输出波形显示在下端。

(6)再次运行程序,可以看到输入、输出波形的同时显示

图1.15设置图形显示功能

10、退出CCS。

三、实验结果

通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:

图1.1.8结果显示

设计实验:

(1)分析数据文件的格式,并完成y=100sinωt+10sin3ωt一周期32点数据文件的构造。

(2)将该数据文件导入CCS3.3中,并进行显示

实验2TMS320F2812的C及汇编语言编程

一、实验目的

1、用标准C及汇编语言编制相同功能的程序,并在DSP中进行调试。

2、学习编制连接命令文件,并用来控制代码的连接。

3、熟悉仿真软件CCS3.3的使用方法。

4、对比C语言、汇编语言生成机器码的效率。

二、实验原理

1、标准C语言程序

CCS支持使用标准C语言开发DSP应用程序。

当使用标准C语言编制的程序时,其源程序文件名的后缀应为.c(如:

volume.c)。

CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。

最后生成的是coff格式的可下载到DSP中运行的文件,其文件名后缀为.out。

由于使用C语言编制程序,其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负责构建C运行环境。

所以用户工程中需要注明使用C的支持库。

2、命令文件的作用

命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP硬件中的位置分配信息。

通过编制命令文件,可以将某些特定的数据或程序按照设计人员的意图放置在DSP所管理的内存中。

命令文件也为链接程序提供了DSP外扩存储器的描述。

在程序中使用CMD文件描述硬件存储区,可以只说明使用部分,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。

3、内存映射(map)文件的作用

设计、开发的DSP程序在调试好后,要固化到系统的ROM中。

为了更精确地使用ROM空间,需要知道程序的大小和位置,通过建立目标程序的map文件可以了解DSP代码的确切信息。

当需要更改程序和数据的大小和位置时,就要适当修改cmd文件和源程序,再重新生成map文件来观察结果。

另外,通过观察map文件,可以掌握DSP存储器的使用和利用情况,以便进行存储器方面的优化工作。

4、程序设计要求

程序流程图:

三、实验步骤

1、实验准备

设置软件仿真模式。

2、建立新的工程文件

(1)双击桌面上图标,

启动CodeComposerStudio3.3。

(2)进行以下设置:

存储目录自己设定

图2.1建立CProgram.pjt

3、编辑输入源程序

(1)C语言程序编写

-先新建源程序窗口:

图2.2新建源文件

-输入源程序:

intx,y,z;

main()

{

x=1;y=2;

while

(1)

{

z=x+y;

}

}

-保存源程序为CProgram.c:

图2.3保存为c文件

(2)命令文件编写(cmd文件)

-如同第

(1)步操作,建立空的源程序窗口。

-输入连接命令文件内容:

-lrts2800.lib

-stack400h

-heap100

MEMORY

{

PAGE0:

PROG(R):

origin=0x3E8000,length=0x10000

PAGE0:

BOOT(R):

origin=0x3FF000,length=0xFC0

PAGE0:

RESET(R):

origin=0x3FFFC0,length=0x2

PAGE0:

VECTORS(R):

origin=0x3FFFC2,length=0x3E

PAGE1:

M0RAM(RW):

origin=0x000000,length=0x400

PAGE1:

M1RAM(RW):

origin=0x000400,length=0x400

PAGE1:

L0L1RAM(RW):

origin=0x008000,length=0x2000

PAGE1:

H0RAM(RW):

origin=0x3F8000,length=0x2000

}

SECTIONS

{

/*22-bitprogramsections*/

.reset:

>RESET,PAGE=0

vectors:

>VECTORS,PAGE=0

.pinit:

>PROG,PAGE=0

.cinit:

>PROG,PAGE=0

.text:

>PROG,PAGE=0

/*16-Bitdatasections*/

.const:

>L0L1RAM,PAGE=1

.bss:

>L0L1RAM,PAGE=1

.stack:

>M1RAM,PAGE=1

.sysmem:

>M0RAM,PAGE=1

/*32-bitdatasections*/

.ebss:

>H0RAM,PAGE=1

.econst:

>H0RAM,PAGE=1

.esysmem:

>H0RAM,PAGE=1

}

-如同第

(1)步操作,将文件存为:

CProgram.cmd

(3)将上述编译的源程序加入工程CProgram.pjt,具体操作参考实验1。

(注意加入的是C源程序文件和cmd文件)

4、编译源文件、下载可执行程序

(1)单击菜单“Project”、“RebuildAll”。

如出现CCS编译错误

fatalerror:

file"C:

\\CCStudio_v3.3\\MyProjects\\Motor\\rts2800.lib"

hasaTag_Memory_Modelattributevalueof"1"thatisdifferentthanone

previouslyseen("2");combiningincompatiblefiles

将project下buildoption中advanced下largememorymodel去掉即可

(2)执行FileLoadProgram,在随后打开的对话框中选择刚刚建立的

\debug\CProgram.out文件。

完成后,系统自动打开一个反汇编窗口“Disassembly”,并在其中指示程序的入口地址为“_c_int00”。

5、打开观察窗口

开启CPU寄存器观察窗口:

单击菜单View->Registers->CPURegisters(调试C语言程序也可不观察此项)。

6、观察程序运行结果

在“Disassembly”代表程序运行位置的绿色箭头指向程序的入口地址,程序将从此处开始执行。

(1)选择菜单中Debug->GoMain,CCS自动打开CProgram.c,程序会停在用户主程序入口main上,这从反汇编窗口和CProgram.c窗口中的指示箭头位置可以看出。

(2)在内存观察窗口中观察变量的值:

选择“View”菜单中“Memory…”项,在“MemroyWindowOptions”窗口中的“Adress”项中输入&x,单击“OK”完成设置;“Memory”窗口中x的当前取值显示在第1个地址的后。

(3)将变量x、y、z分别加入观察窗口:

在源程序中双击变量名,再单击鼠标右键,选择“AddtoWatchWindow”。

这时,这3个变量还未作初始化。

(4)单步运行2次,在观察窗中观察到变量x、y被赋值。

变化的值被显示成红色。

同时在“Memory”窗口中也能观察到x和y值的改变。

(5)再单步运行,可观察到z的值被计算出来。

双击观察窗口中变量x、y在“Value”栏中的取值并修改成其他取值,单步运行后观察结果。

(6)双击观察窗口中变量x、y在“Value”栏中的取值,并修改成0;选择菜单Debug->Restart,返回程序起点。

(7)重新单步运行程序,观察在CPU寄存器窗口中,各寄存器使用情况,观察哪个寄存器参与了运算。

7、内存映像文件

(1)选择菜单Project->BuildOptions…,启动“BuildOptions”工程设置对话框。

(2)单击“Linker”属性页,在“MapFilename”项中观察生成的map文件名和路径。

(3)单击“取消”退出。

8、对照观察map文件和cmd文件的内容

(1)选择菜单File->Open…,将找到

C:

\Debug目录,将文件类型改为“MemoryMapFiles”,选择CProgram.map文件、打开。

(2)打开CProgram.cmd文件。

(3)程序的入口地址:

map文件中“ENTRYPOINTSYMBOL”中说明了程序入口地址(_c_int00)。

(4)内存使用情况:

-map文件中“MEMORYCONFIGURATION”标明了程序占用RAM的使用情况,共

占用93H个存储单元。

-观察map文件中的“SECTIONALLOCATIONMAP”段,可以看出CProgram.obj的入口地址为0x3e801e,这也是main函数的入口地址

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2