实验一 集成开发环境 CCS 应用基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一集成开发环境CCS 应用基础

一、实验目的

1. 通过创建一个简单的应用工程,初步熟悉Code Composer Studio(简称CCS)的集成开发环境(IDE)及其工具的使用。

2. 掌握汇编语言源程序的基本框架和编写方法,了解CCS的工程结构以及编译、汇编、连接、运行和调试的基本过程。

3. 了解ST0、ST1的控制位对计算过程的控制以及计算结果对状态位的影响。

二、实验内容

1. 学习使用CCS集成开发环境(IDE)的各种工具。

包括下列内容:

(1)编辑、汇编和连接。

(2)查看和修改存储器映像寄存器的内容。

(3)查看和修改ST0、ST1 及PMST 的有关位。

(4)查看和修改程序存储器和数据存储器的内容。

(5)断点操作。

(6)运行程序(单步运行、连续运行和断点运行)。

2. 观察并理解COFF段结构的划分及存储空间的分配。

3. 观察控制位SXM、OVM、C16及FRCT置1或清0对执行结果的影响。

4. 观察标志位TC、C、OVA及OVB的变化情况。

三、程序分析

1. 说明3个文件的作用及接口情况,说明各个文件中伪指令的作用。

①text1.asm文件为实验主程序。

Vectors.asm文件用于处理中断,在本程序中规定了上电复位的跳转地址,并屏蔽其他用不到的中断。

Test1.cmd文件是存储器分配说明文件,主要功能是指定工程中的各段分配到那段存储器中,比如有片内RAM(起始地址,大小)和SDRAM等,为连接器提供段定位信息。

②EPROM程存空间为从E000h开始的100h个存储单元,SPRAM数据空间为从0060h开始的32个存储单元,VECS程存空间为从FF80h开始的128个存储单元,DARAM数据空间为从0080h开始的256个存储单元。设置的.text段和.data段在0页EEPROM存储空间,.bss 段在1页SPRAM存储空间,STACK段在1页DARAM存储空间,Vectors段在0页VECS存储空间。

③text1.asm中使用了以下伪指令:

.title “example.asm”允许汇编器在每页顶部打印标题

.mmregs 将存储映射寄存器送入符号表中

.usect “STACK”为未初始化变量保留存储空间的自定义段STACK

.def _c_int00 在当前模块中定义符号_c_int00,使其在其他模块中可使用

.text 设置已初始化段.text

.end 终止汇编,放置在源程序最后一行

Vectors.asm中使用了以下伪指令:

.ref _c_int00 在模块test1.asm中定义的符号_c_int00,在当前模块中可用

.sect “vectors”设置自定义已初始化段vectors

.space 124*16 在当前段中保留指定的位,共124位*16bit

.end 终止汇编,放置在源程序最后一行

Test1.cmd中使用了以下伪指令:

.text 设置已初始化段.text

.data 设置已初始化段.data

.bss 设置未初始化段.bss

2. 分析主程序的结构和功能,对每条指令进行注释,写出执行结果。

主程序为顺序结构,功能、注释、结果见下:

;************************************************************************;

; 实验一集成开发环境CCS应用基础

;************************************************************************ .title "example1.asm" ;允许汇编器在每页顶部打印标题"example1.asm"

.mmregs ;使能存储器映像寄存器

stack .usect "STACK",10h

.def _c_int00

;------------------------------------------------------------------------------

.text

_c_int00:

stm # stack+10h, SP ;设置堆栈指针

stm #0x0000, SWWSR ;所有存储器未加软件延迟

;================================================

stm #0x70,AR2 ;0x70→AR2

st #0xff80,*AR2 ;0xff80→0x70h

;================================================

;观察控制位SXM的作用

;当SXM=0时,进行无符号数的加载

rsbx SXM ;SXM=0时,((AR2))→A

nop

ld *AR2, A ;(A)=(00 0000 FF80)

;------------------------

;当SXM=1时,进行有符号数的加载

ssbx SXM ;SXM=1时,((AR2))→A

nop

ld *AR2, A ;(A)=(FF FFFF FF80)

;================================================

;================================================

;观察控制位OVM的作用

;当OVM=0时,对溢出不进行处理

rsbx OVM ;OVM=0时,不处理溢出

ld #0x7fff, 16, B ;0x7fff左移16位后送B,(B)=00 7FFF 0000 add #0x7fff, 16, B ;(B)=(00 FFFE 0000)0x7fff左移16位后加到B ;------------------------

;当OVM=1时,对溢出进行处理

ssbx OVM ;0VM=1时,处理溢出

相关文档
最新文档