新版CCS软件教程学习课件.PPT_第1页
新版CCS软件教程学习课件.PPT_第2页
新版CCS软件教程学习课件.PPT_第3页
新版CCS软件教程学习课件.PPT_第4页
新版CCS软件教程学习课件.PPT_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

1、1.2.1 ccstudio 主程序安装主程序安装 第第1步:找步:找ccs setup.exe应用程序的图标。双应用程序的图标。双击该图标。击该图标。 3.第2步步:点击next接钮 4.第3步步:选择i accept后,再点击next按钮 5.第4步:选择默认典型安装, “typical install”图标, 6.选择安装路径后,点击next,注意路径不能包含中文 7.第5步步:点击install now开始安装 8.9.安装结束后出现如下图的告警界面,提示要求安装perl v5.8版本,不必担心,点击确定即可10.第7步步:安装完成 11.安装补丁版本 安装升级补丁包sr12_ccs_

2、v3.3_sr_3.3.82.13 .exe双击安装后,会出现以下界面,点击next:12.出现如下图所示界面,选择 activestate perl58,点击next13.然后一路点击next,直到开始安装。14.安装补丁版本 (2)安装浮点支持库setup_c28xfpu_csp_v31.3.1207 (3)安装烧写插件f2823x_reva_csp.exe (4)更新code gernerator,将c2000codegenerationtools51.1.1.exe安装在ccstudio_v3.3c2000cgtools目录下,安装过程中选择“yes to all”全部覆盖。覆盖结果可

3、在component manager中选择“build tools”进行查看,覆盖成功应为“texas instruments c2000 code genertion tools ”项前面打勾 (5)安装仿真器usb驱动和仿真器驱动。15.16.2让让ccs工作在软件仿真环境工作在软件仿真环境 (simulator) ccs可以工作在纯软件仿真环境中,就是由ccs在pc机内存中构造一个虚拟的dsp环境,可以调试、运行程序。但一般软件无法构造dsp中的外设,所以软件仿真通常用于调试算法和进行效率分析等。在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。 17.单击桌面上“setup ccs

4、tudio v3.3”图标, 进入 ccs设置窗口。18.在设置界面的中间栏目中分别对family和platform项进行设置。 19.20.然后会在在设置栏的左侧出现添加的软件仿真平台,选择f2812 device simulator点击右键会出现如图所示对话框,可以设置配置文件。21.选择cpu点击右键会出现如图所示对话框,可以设置gel文件。22.点击“save&quit”出现对话框后,选择yes。23.24.25.ccs闯关小游戏 第一关 找到“load program”在那个菜单栏下,以及其快捷键是什么?26.第二关 新建一个工程是通过那个菜单栏中的那一项实现的?27.第三关

5、 在调试中所用到的“step into、step over、run”的快捷键是什么?28.第四关 watch window在那个菜单栏下,对应着工具栏中的哪一个图标?29.第五关 打开提供的工程,回答以下问题: 工程的后缀名是什么? 工程中包含哪几类文件? 如何编译工程,快捷键及工具栏图标是什么?30.第六关 加载编译生成的.out文件,回答以下问题: 如何设置断点? 设置断点后,点击run(运行)结果如何?31.3 让让ccs工作在硬件仿真环境工作在硬件仿真环境(emulator) 先删除当前的系统设置先删除当前的系统设置32.选择硬件仿真f2812芯片驱动 33.34.找到开发板相关找到开

6、发板相关f2812的配置文件,的配置文件,路径如下所示:路径如下所示:35.路径设置完之后,点击路径设置完之后,点击ok即可即可36.添加完成。添加完成。37. ccs已经被设置成emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过tds510-usb2 仿真器连接ex-dsp-exp iii+试验箱。 38.4 集成调试环境介绍集成调试环境介绍完成对系统的配置之后,给实验开发板供电,双击完成对系统的配置之后,给实验开发板供电,双击快捷键快捷键“ccstudio 3.3”,即可进入集成调试环境。,即可进入集成调试环境。 系系统统为为未未连连接接状状态态 39.把ccs软件和f28

7、12芯片连接在一起,然后才能对f2812 芯片进行控制。 40.确认ccs和f2812连接是否成功 41.注意:注意: 在实验箱使用结束后,必须按照以下步骤进行操作: 1 先断开链接 2 关闭ccs 3 关闭实验箱电源42.集成调试环境的组成:集成调试环境的组成:1. 集成调试环境的标题栏(集成调试环境的标题栏(/f2812 xds510 emulator/cpu_1f28xxcode composer studio)。)。2. 菜单栏(菜单栏(file、edit、view)。)。3. 工作窗口区(工作窗口区(files、diassembly、cpu)4. 系统连接状态。系统连接状态。43.

8、44.菜单及功能介绍菜单及功能介绍ccs3.3不能直接由汇编源代码或不能直接由汇编源代码或c语言源代码语言源代码文件建立(文件建立(build)生成)生成dsp可执行代码,必须可执行代码,必须使用项目(使用项目(project)来管理整个设计过程。)来管理整个设计过程。项目文件保存在磁盘中后缀为项目文件保存在磁盘中后缀为.pjt文件。文件。 45.1. 项目菜单项目菜单(1)project/new:新建一个项目,将该项目保存至新建项目文件夹里面。:新建一个项目,将该项目保存至新建项目文件夹里面。(2)project/open : 打开一个已有的项目。打开一个已有的项目。(3)project/a

9、dd files to project:添加文件到该项目中。:添加文件到该项目中。 46.可以添加到项目中的文件的扩展名:可以添加到项目中的文件的扩展名: *.c: c源文件,项目管理对这一类文件进行编译和链源文件,项目管理对这一类文件进行编译和链接。接。*.asm: 汇编源文件,项目管理对这一类文件进行汇汇编源文件,项目管理对这一类文件进行汇编和链接。编和链接。*.obj:目标文件,项目管理对这一类文件进行链接。:目标文件,项目管理对这一类文件进行链接。*.lib :库文件,项目管理对这一类文件进行链接。:库文件,项目管理对这一类文件进行链接。*.cmd:链接命令文件,项目管理在链接各个文件

10、时:链接命令文件,项目管理在链接各个文件时根据此文件分配系统程序空间、数据空间。根据此文件分配系统程序空间、数据空间。47.注意注意 对头文件和在程序中用包含文件(对头文件和在程序中用包含文件(include)引用的文件,项目管理程序会自动地加入引用的文件,项目管理程序会自动地加入到项目中。到项目中。 项目管理不允许用户添入其它类型的文件。项目管理不允许用户添入其它类型的文件。 48.(4)project/save:保存一个已打开的项目。:保存一个已打开的项目。(5)project/close:关闭一个已打开的项目。:关闭一个已打开的项目。(6)project/add files to pro

11、ject:添加所有用到:添加所有用到的文件和所需的库文件到该项目中。的文件和所需的库文件到该项目中。(7)project/compile files:对项目中的:对项目中的c语言和汇语言和汇编语言源代码文件进行编译。编语言源代码文件进行编译。(8)project/build:对项目进行编译、汇编和链接,:对项目进行编译、汇编和链接,生成可执行文件,执行文件的后缀为生成可执行文件,执行文件的后缀为.out。对于以前编译过到目前为止还没有修改过的源文件对于以前编译过到目前为止还没有修改过的源文件不重新编译。不重新编译。49.(9)project/rebuild all:对项目重新进行一次编:对项目

12、重新进行一次编译、汇编和链接,生成可执行文件译、汇编和链接,生成可执行文件.out,不论是否,不论是否修改过都编译一次。修改过都编译一次。(10)project/stop build:停止对项目的编译、汇:停止对项目的编译、汇编和链接。编和链接。(11)project/show project dependencies:显示该:显示该项目中所有用到的文件和所需的库文件。项目中所有用到的文件和所需的库文件。(12)project/scan all file dependencies:详细查:详细查看该项目中所有用到的文件和所需的库文件。看该项目中所有用到的文件和所需的库文件。(13)projec

13、t/recent project files:显示最近打开:显示最近打开过的项目。过的项目。50.(14)project/build options:对编译器、汇编器、:对编译器、汇编器、和链接器的参数进行配置。和链接器的参数进行配置。可以配置寄存器优先调试,特定函数优先调试,或可以配置寄存器优先调试,特定函数优先调试,或某个子程序优先调试等选项。某个子程序优先调试等选项。编编译译器器设设置置对对话话框框51.2. 观察菜单观察菜单(1)view/disassembly:观察反汇编程序窗口。:观察反汇编程序窗口。当当dsp可执行程序可执行程序coff文件载入目标系统后,文件载入目标系统后,cc

14、s将自动打开一个反汇编窗口,反汇编窗口根据将自动打开一个反汇编窗口,反汇编窗口根据存储器的内容显示反汇编指令和符号信息。存储器的内容显示反汇编指令和符号信息。52.(2)view/memory:观察存储器窗口。:观察存储器窗口。 53.address:输入需要观察的存储器的起始地址;:输入需要观察的存储器的起始地址;qvalue):填):填0,出现的存储器窗口中的显示值,出现的存储器窗口中的显示值就是实际值;若填其它数,出现的存储器窗口中的就是实际值;若填其它数,出现的存储器窗口中的显示值不是实际值;显示值不是实际值;format:下拉菜单中有不同的格式;:下拉菜单中有不同的格式;存储器的显示

15、格式:存储器的显示格式:16进制、进制、2进制等进制等ieee浮点格式显示时,则选中使用浮点格式显示时,则选中使用ieee浮点格式浮点格式“use ieee float”;page:下拉菜单中,可以选择显示的存储器的类:下拉菜单中,可以选择显示的存储器的类型:如程序存储器(型:如程序存储器(program)、数据存储器)、数据存储器(data) 和和i/o空间;空间;54.(3)view/registers:包含:包含“cpu”、“status”两两个选项,点击相应的选项可以观察调试过程中个选项,点击相应的选项可以观察调试过程中cpu寄存器和状态(寄存器和状态(status)寄存器各个状态位的

16、)寄存器各个状态位的变化情况。变化情况。(4)view/peripherals:点击可以观察调试过程中:点击可以观察调试过程中外设模块寄存器的变化情况。外设模块寄存器的变化情况。(5)view/mixed source:选择此选项则能同时显:选择此选项则能同时显示示c语言代码及与之关联的反汇编代码(反汇编代语言代码及与之关联的反汇编代码(反汇编代码位于码位于c语言代码下方)。语言代码下方)。若需要取消此功能,只要再次点击此选项即可。若需要取消此功能,只要再次点击此选项即可。55.(6)view/watch window:观察调试过程中的变:观察调试过程中的变量,量,c表达式的值,地址空间和寄存

17、器的值。表达式的值,地址空间和寄存器的值。56. watch window:加入一个新的表达式:加入一个新的表达式:在观察窗中的名字(在观察窗中的名字(name)中直接输入要观察的变量)中直接输入要观察的变量名,或者在程序窗口中选中要观察的变量名,然后点名,或者在程序窗口中选中要观察的变量名,然后点击右键,再点击加到观察窗(击右键,再点击加到观察窗(add to watch window)即可。即可。删除一个表达式:删除一个表达式:用鼠标点击要删除的表达式,单击鼠标右键,在弹出用鼠标点击要删除的表达式,单击鼠标右键,在弹出的对话框中选择删除选择项(的对话框中选择删除选择项(delete sel

18、ected item(s)。)。如果添加变量时,在如果添加变量时,在“添加变量对话框添加变量对话框”的文本栏中的文本栏中只是输入变量名,则在观察窗中只显示出该变量的地只是输入变量名,则在观察窗中只显示出该变量的地址;址;如果需要显示该变量的值,则需要在变量名前加如果需要显示该变量的值,则需要在变量名前加*号。号。57.3.调试菜单调试菜单(1)debug/breakpoints:断点设置。:断点设置。设置断点:设置断点:最简单的方法是用鼠标左键点击需要设置断点的程序最简单的方法是用鼠标左键点击需要设置断点的程序处,再点击鼠标右键,从弹出的对话框中选择处,再点击鼠标右键,从弹出的对话框中选择“t

19、oggle breakpoint”即可;即可;去掉断点:去掉断点:用鼠标左键点击相应的断点处,再点击鼠标右键,从用鼠标左键点击相应的断点处,再点击鼠标右键,从弹出的对话框中再次选择弹出的对话框中再次选择“toggle breakpoint”即可。即可。58.(1)debug/probe points:探测点设置。:探测点设置。在设置探测点的地方,可以将主机文件的数据读到在设置探测点的地方,可以将主机文件的数据读到dsp目标系统的存储器,或将目标系统的存储器,或将dsp目标系统存储器的目标系统存储器的数据写入主机的文件中。数据写入主机的文件中。(2)debug/step into (快捷键为快捷

20、键为f8):单步执行。:单步执行。单步执行程序,如果运行到调用函数处,则跳入调用单步执行程序,如果运行到调用函数处,则跳入调用的程序继续单步执行。的程序继续单步执行。(3)debug/step over(快捷键为快捷键为f10):单步执行。:单步执行。单步执行程序,但与单步执行程序,但与step into不同的是,不进入调用不同的是,不进入调用的程序(子程序、中断服务程序),即该命令一步执的程序(子程序、中断服务程序),即该命令一步执行完被调用的程序。行完被调用的程序。(4)debug/step out:跳出子程序。:跳出子程序。当使用当使用step into或或step over单步执行指令

21、时,如果程单步执行指令时,如果程序运行到一个子程序中,执行该命令将使程序执行完序运行到一个子程序中,执行该命令将使程序执行完函数或子程序后,回到调用的地方。函数或子程序后,回到调用的地方。59.(5)debug/run(快捷键为快捷键为f5):执行程序到断点、:执行程序到断点、探测点或用户中断(按系统机键盘上的探测点或用户中断(按系统机键盘上的esc键中断)。键中断)。(6)debug/halt(快捷键为快捷键为shift + f5):当执行:当执行run时,用时,用halt来暂停程序的执行。来暂停程序的执行。(7)debug/reset cpu:对:对dsp进行复位。也复位进行复位。也复位d

22、sp的目标系统,停止程序的执行,初始化所有的寄的目标系统,停止程序的执行,初始化所有的寄存器。存器。(8)debug/restart:将程序指针(:将程序指针(pc)指向程序的)指向程序的起始地址。起始地址。(9)debug/reset emulator:对仿真器进行复位。:对仿真器进行复位。60.4 工作窗口区介绍工作窗口区介绍常用工作窗口有:常用工作窗口有:1. 文件(文件(files)窗口;)窗口;2. 反汇编程序(反汇编程序(disassembly)窗口;)窗口;3. cpu寄存器窗口;寄存器窗口;4. 存储器(存储器(memory)窗口;)窗口;5. 观察(观察(watch)窗口等。

23、)窗口等。 61.1. 文件窗口文件窗口 文件(文件(files)窗口包括:当前系统用到的)窗口包括:当前系统用到的gel文文件和项目。件和项目。 gel文件:包括缺省的文件:包括缺省的f2812.gel文件。文件。 项目:包括用户用到的头文件、用项目:包括用户用到的头文件、用include定义的定义的引用文件和用户建立或添加的引用文件和用户建立或添加的c源文件源文件*.c、汇编、汇编源文件源文件*.asm、目标文件、目标文件*.obj、库文件、库文件*.lib和和链接命令文件链接命令文件*.cmd。 62.63.2. 反汇编程序窗口反汇编程序窗口 反汇编程序(反汇编程序(disassembl

24、y)窗口:用来显示程序)窗口:用来显示程序的反汇编代码和程序存储器的内容。的反汇编代码和程序存储器的内容。在这个窗口中,用一反显高亮条来表示当前程序在这个窗口中,用一反显高亮条来表示当前程序指针。指针。可用鼠标点击汇编语句的方法来设置断点,再点可用鼠标点击汇编语句的方法来设置断点,再点击一次,则取消断点。击一次,则取消断点。64.3. cpu寄存器窗口寄存器窗口cpu寄存器窗口:显示在程序调试过程中寄存器窗口:显示在程序调试过程中cpu寄存器(程序指针寄存器(程序指针pc、累加器、累加器acc、状态寄存、状态寄存器器st0和和st1、重复计数器、重复计数器rtc、辅助寄存器、辅助寄存器xar0

25、xar7、中断使能寄存器、中断使能寄存器ier和中断标和中断标志寄存器志寄存器ifr等)的内容。等)的内容。若要改变寄存器的内容,用鼠标点击要改变的寄若要改变寄存器的内容,用鼠标点击要改变的寄存器,输入值后回车即可。存器,输入值后回车即可。65.4. 状态寄存器窗口状态寄存器窗口状态寄存器窗口:显示状态寄存器中的各个状态状态寄存器窗口:显示状态寄存器中的各个状态位:位:sxm、ovm、tc、c、z、n、v、pm、ovc、intm、dbgm、page0、vmap、spa、loop、eallow、idlestat、amode、objmode、cnt、m0m1map、xf、arp的状的状态。态。若要

26、改变状态位内容,用鼠标点击需改变的状态若要改变状态位内容,用鼠标点击需改变的状态位,输入值后回车即可。位,输入值后回车即可。66.5. 存储器窗口存储器窗口存储器(存储器(memory)窗口:显示存储器的内容。)窗口:显示存储器的内容。存储器可为程序存储器、数据存储器和存储器可为程序存储器、数据存储器和i/o空间。空间。若要改变存储器内容,用鼠标点击需改变的存储若要改变存储器内容,用鼠标点击需改变的存储器地址,输入值后回车即可。器地址,输入值后回车即可。注意:某些存储器的内容是不能改变。注意:某些存储器的内容是不能改变。67. 6. 观察窗口观察窗口 观察(观察(watch)窗口:显示所选择的

27、变量、寄存器)窗口:显示所选择的变量、寄存器和存储器的内容。和存储器的内容。68.7. 建立状态窗口建立状态窗口建立状态(建立状态(build)窗口:显示一些状态信息,如)窗口:显示一些状态信息,如果在编译、汇编和连接过程中发现错误,则该窗口果在编译、汇编和连接过程中发现错误,则该窗口显示出错误类型和错误的位置。显示出错误类型和错误的位置。用户可根据此信息对发生错误的地方进行修改。点用户可根据此信息对发生错误的地方进行修改。点击错误信息处,光标就跳到程序中出错地方的对应击错误信息处,光标就跳到程序中出错地方的对应位置。位置。69.5 用用c编译器开发应用程序编译器开发应用程序的步骤的步骤1.

28、书写书写4种类型的文件种类型的文件开发一个开发一个dsp的的c语言应用程序,需要以下语言应用程序,需要以下4种类型种类型的文件:的文件: c/c+语言文件;语言文件; 汇编语言文件;汇编语言文件; 头文件;头文件; 命令文件。命令文件。 70.注意注意 4种类型的文件必须存储在同一个文件夹中。种类型的文件必须存储在同一个文件夹中。 还需要把一个还需要把一个“rts2800 . lib”的库文件复制到该的库文件复制到该目录中。目录中。 在默认情况下,在默认情况下, rts2800 . lib文件可以在目录文件可以在目录“c:ccstudio_v3.1c2000cgtoolslib”中找到。中找到

29、。 71.5.5 头文件和命令文件头文件和命令文件5.5.1 头文件头文件头文件中定义:头文件中定义:dsp系统用到的寄存器映射地址,系统用到的寄存器映射地址,用户用到的常量和用户自定义的寄存器,文件名用户用到的常量和用户自定义的寄存器,文件名的后缀为的后缀为.h。 72.5.5.2 命令文件命令文件.cmd命令文件:指定存储区域的分配。命令文件:指定存储区域的分配。文件扩展名为文件扩展名为 .cmd。 73.文件文件dsp28_adc.h dsp28_adc.h#ifndef dsp28_adc_h#define dsp28_adc_h/ adc 专用寄存器的位定义:专用寄存器的位定义:st

30、ruct adctrl1_bits / 位描述位描述 uint16 rsvd1:4; / 位位 30 保留位保留位 uint16 seq_casc:1; / 位位 4 级连排序器工作模式选择位级连排序器工作模式选择位 uint16 rsvd2:1; / 位位 5 保留位保留位 uint16 cont_run:1; / 位位 6 连续转换位连续转换位 uint16 cps:1; / 位位 7 模数转换时钟预分频位模数转换时钟预分频位 uint16 acq_ps:4; / 位位 118 采样时间选择位采样时间选择位 uint16 susmod:2; / 位位 1312 仿真悬挂工作模式选择位仿真悬

31、挂工作模式选择位 uint16 reset:1; / 位位 14 模数转换复位位模数转换复位位 uint16 rsvd3:1; / 位位 15 保留位保留位;74.union adctrl1_reg uint16 all; struct adctrl1_bits bit;75.struct adctrl2_bits / 位描述位描述 uint16 evb_soc_seq2:1; / 位位 0 事件管理事件管理evb对对seq2产生产生soc的屏蔽位的屏蔽位 uint16 rsvd1:1; / 位位 1 保留位保留位 uint16 int_mod_seq2:1; / 位位 2 seq2中断模式位

32、中断模式位 uint16 int_ena_seq2:1; / 位位 3 seq2 中断使能位中断使能位 uint16 rsvd2:1; / 位位 4 保留位保留位 uint16 soc_seq2:1; / 位位 5 启动启动seq2的转换位的转换位 uint16 rst_seq2:1; / 位位 6 复位复位seq2 uint16 ext_soc_seq1:1; / 位位 7 外部信号对外部信号对seq1的启动转换位的启动转换位 uint16 eva_soc_seq1:1; / 位位 8 事件管理事件管理eva对对seq1产生产生soc的屏蔽位的屏蔽位 uint16 rsvd3:1; / 位位

33、 9 保留位保留位 uint16 int_mod_seq1:1; / 位位 10 seq1 中断模式位中断模式位 uint16 int_ena_seq1:1; / 位位 11 seq1 中断使能位中断使能位 uint16 rsvd4:1; / 位位 12 保留位保留位 uint16 soc_seq1:1; / 位位 13 启动启动seq1的转换位的转换位 uint16 rst_seq1:1; / 位位 14 复位复位seq 1 uint16 evb_soc_seq:1; / 位位 15 evb soc 使能位使能位;76.union adctrl2_reg uint16 all; struct

34、 adctrl2_bits bit;struct adccaseqsr_bits / 位描述位描述 uint16 seq1_state:4; / 位位30 seq1状状态态 uint16 seq2_state:3; / 位位62 seq2状状态态 uint16 rsvd1:1; / 位位7 保留位保留位 uint16 seq_cntr:4; / 位位118 排序计数排序计数器状态位器状态位 uint16 rsvd2:4; / 位位1512 保留位保留位 ;77.union adccaseqsr_reg uint16 all; struct adccaseqsr_bits bit;struct

35、adcmaxconv_bits uint16 max_conv:7; / 位位60 最大转化通道数位最大转化通道数位 uint16 rsvd1:9; / 位位157 保留位保留位;union adcmaxconv_reg uint16 all; struct adcmaxconv_bits bit;struct adcchselseq1_bits uint16 conv00:4; uint16 conv01:4; uint16 conv02:4; uint16 conv03:4;78.union adcchselseq1_reg uint16 all; struct adcchselseq1_

36、bits bit;struct adcchselseq2_bits uint16 conv04:4; uint16 conv05:4; uint16 conv06:4; uint16 conv07:4;union adcchselseq2_reg uint16 all; struct adcchselseq2_bits bit;79.struct adcchselseq3_bits uint16 conv08:4; uint16 conv09:4; uint16 conv10:4; uint16 conv11:4;union adcchselseq3_reg uint16 all; struc

37、t adcchselseq3_bits bit;struct adcchselseq4_bits uint16 conv12:4; uint16 conv13:4; uint16 conv14:4; uint16 conv15:4;union adcchselseq4_reg uint16 all; struct adcchselseq4_bits bit;80.struct adctrl3_bits uint16 smode_sel:1; / 位位 0 采样模式选择位采样模式选择位 uint16 adcclkps:4; / 位位 41 模数转换时钟分频器模数转换时钟分频器 uint16 ad

38、cpwdn:1; / 位位 5 模数转换掉电位模数转换掉电位 uint16 adcbgrfdn:2; / 位位 76 模数转换内部参考电模数转换内部参考电压源电源选择位压源电源选择位 uint16 rsvd1:8; / 位位 158 保留位保留位; union adctrl3_reg uint16 all; struct adctrl3_bits bit;81.struct adcst_bits uint16 int_seq1:1; / 位位 0 seq1 中断标志中断标志 uint16 int_seq2:1; / 位位 1 seq2 中断标志中断标志 uint16 seq1_bsy:1; /

39、 位位 2 seq1 忙状态位忙状态位 uint16 seq2_bsy:1; / 位位 3 seq2 忙状态位忙状态位s uint16 int_seq1_clr:1; / 位位 4 seq1 中断清零位中断清零位 uint16 int_seq2_clr:1; / 位位 5 seq2中断清零位中断清零位 uint16 eos_buf1:1; / 位位 6 排序缓冲器排序缓冲器1的的末尾的的末尾 uint16 eos_buf2:1; / 位位 7 排序缓冲器排序缓冲器1的的末尾的的末尾 uint16 rsvd1:8; / 位位 158 保留位保留位;union adcst_reg uint16 a

40、ll; struct adcst_bits bit;82.struct adc_regs union adctrl1_reg adctrl1; / 模数转换控制寄存器模数转换控制寄存器1 union adctrl2_reg adctrl2; / 模数转换控制寄存器模数转换控制寄存器2 union adcmaxconv_reg adcmaxconv; / 最大转换通道树寄存器最大转换通道树寄存器 union adcchselseq1_reg adcchselseq1; / 通道选择排序控制寄存器通道选择排序控制寄存器l union adcchselseq2_reg adcchselseq2; u

41、nion adcchselseq3_reg adcchselseq3; union adcchselseq4_reg adcchselseq4; union adccaseqsr_reg adcaseqsr; / 自动排序状态寄存器自动排序状态寄存器 uint16 adcresult0; / 转换结果缓冲寄存器转换结果缓冲寄存器 015 uint16 adcresult1; uint16 adcresult2; uint16 adcresult3; uint16 adcresult4; uint16 adcresult5; uint16 adcresult6; uint16 adcresult

42、7; uint16 adcresult8; uint16 adcresult9; uint16 adcresult10; uint16 adcresult11; uint16 adcresult12; uint16 adcresult13; uint16 adcresult14; uint16 adcresult15; union adctrl3_reg adctrl3; / 模数转换控制寄存器模数转换控制寄存器3 union adcst_reg adcst; / 模数转换状态寄存器模数转换状态寄存器;83./ 模数转换外部参数函数声明模数转换外部参数函数声明extern volatile s

43、truct adc_regs adcregs;#endif / dsp28_adc_h 定义结束定义结束说明说明上述形式定义后,如果要对上述形式定义后,如果要对adctrl1付值付值value,则,则表达式为:表达式为:adcregs.adctrl1.allvalue;如果要对如果要对adctrl1的某一位进行操作,如对的某一位进行操作,如对adctrl1的复位位写入的复位位写入1,使,使adc模块复位,则表模块复位,则表达式为:达式为:adcregs.adctrl1.bit.reset1; 84.1. 命令文件常用的几种伪指令。命令文件常用的几种伪指令。段:编译器产生几个可以重新分配的代码块

44、和数据段:编译器产生几个可以重新分配的代码块和数据块。它可以以各种模式分配到存储器中以符合多种块。它可以以各种模式分配到存储器中以符合多种系统配置。系统配置。有两种基本的段类型:已初始化段和未初始化段。有两种基本的段类型:已初始化段和未初始化段。 85.已初始化段:包含数据表或可执行的代码。已初始化段:包含数据表或可执行的代码。编译器产生以下已初始化段:编译器产生以下已初始化段:.text,.cinit,.const,.econst,.pinit 和和.switch。 86.text包含所有可执行的代码和常量。包含所有可执行的代码和常量。.cinit 包含全局变量和静态变量的包含全局变量和静态

45、变量的c初始化纪初始化纪录。录。.pinit 包含全局构造器(包含全局构造器(c+)程序列表。)程序列表。.const 包含字符串常量和明确初始化了的全局包含字符串常量和明确初始化了的全局和静态变量(由和静态变量(由const限定了的)的初始化和说明。限定了的)的初始化和说明。.econst 包含字符串常量和明确初始化了的全局包含字符串常量和明确初始化了的全局和静态变量(由和静态变量(由far const限定了的)的初始化和说限定了的)的初始化和说明。明。.switch 包含转换语句声明的列表。包含转换语句声明的列表。87.未初始化段:在存储器(通常是未初始化段:在存储器(通常是ram)中保留

46、了)中保留了空间。这些段在目标文件中没有实际内容,仅仅空间。这些段在目标文件中没有实际内容,仅仅保留存储空间而已。保留存储空间而已。在程序运行时,创建和存储变量可以使用这些空在程序运行时,创建和存储变量可以使用这些空间。间。编译器产生未被初始化段包括:编译器产生未被初始化段包括:.bss, ebss,.stack,.sysmem 和和.esysmem。 88.bss 为全局和静态变量保留的空间。在程序为全局和静态变量保留的空间。在程序启动时,启动时,c引导程序将引导程序将.cinit空间(可以在空间(可以在rom中)中)中的数据复制出来并存储在中的数据复制出来并存储在.bss空间中。空间中。.

47、ebss 为由为由far限定的全局和静态变量或者使用限定的全局和静态变量或者使用大存储器模式时的全局和静态变量保留的空间。在大存储器模式时的全局和静态变量保留的空间。在程序启动时,程序启动时,c引导程序将引导程序将.cinit空间(可以在空间(可以在rom中)中的数据复制出来并存储在中)中的数据复制出来并存储在.ebss空间中。空间中。.stack 为为c系统堆栈保留的空间。这个存储区用系统堆栈保留的空间。这个存储区用于给函数传递变量和为局部变量分配空间。于给函数传递变量和为局部变量分配空间。.sysmem 为动态存储分配保留的空间。保留的空间为动态存储分配保留的空间。保留的空间被宏函数所用。

48、如没有使用宏函数,该空间大小保被宏函数所用。如没有使用宏函数,该空间大小保留为留为0。.esysmem 为动态存储分配保留空间。保留的空间为动态存储分配保留空间。保留的空间被被far宏函数所用。如没有使用宏函数所用。如没有使用far宏函数,该空间大宏函数,该空间大小保留为小保留为0。89.说明说明 链接器从不同的模块中取出每个段并将这些段用同一链接器从不同的模块中取出每个段并将这些段用同一个名称联合起来产生输出段。个名称联合起来产生输出段。 全部的程序都是由这些输出段组成的。全部的程序都是由这些输出段组成的。 可以根据需要将这些输出段放置到地址空间的任何位可以根据需要将这些输出段放置到地址空间

49、的任何位置,以满足系统的要求。置,以满足系统的要求。 .text, .cinit和和.switch段通常链接到段通常链接到rom和和ram中,中,且必须链接到程序存储器中(且必须链接到程序存储器中(page 0)。)。 .const段也可以链接到段也可以链接到rom和和ram中,但必须在数中,但必须在数据空间(据空间(page 1)。)。 .bss/.ebss,.stack和和.sysmem/.esysmem段必须链接到段必须链接到ram中且必须在数据存储器中。中且必须在数据存储器中。 90.每个段所需要的存储器类型每个段所需要的存储器类型 段段存储器类型存储器类型页页.textrom or

50、ram0.cinitrom or ram0.pinitrom or ram0.switchrom or ram0,1.constrom or ram1.econstrom or ram1.bssram1.ebssram1.stackram1.sysmemram1.esysmemram191.memory伪指令:用来标示实际存在目标系统伪指令:用来标示实际存在目标系统中可以使用的存储器范围,每个存储器范围具有中可以使用的存储器范围,每个存储器范围具有名字、起始地址和长度;名字、起始地址和长度;sections伪指令:描述输入段是如何组合到输伪指令:描述输入段是如何组合到输出段内的。出段内的。92

51、.命令文件可以把程序下载到命令文件可以把程序下载到f28x片内片内ram中。中。 / 文件文件:ezdsp_ram_lnk.cmd/ 标题:标题:该命令文件假设用户在导入时跳到该命令文件假设用户在导入时跳到h0模式模式memorypage 0: /* saram h0 在在page 0 和和page 1之间分配之间分配 */ pramh0 : origin = 0 x3f8000, length = 0 x001000 /* 仅当从仅当从xintf zone 7导入时,该存储模块与复位矢量一起下载;否则复位矢量导入时,该存储模块与复位矢量一起下载;否则复位矢量从导入从导入rom获取。查看以下的

52、部分获取。查看以下的部分*/ reset : origin = 0 x3fffc0, length = 0 x000002 page 1: /* saram */ ramm0 : origin = 0 x000000, length = 0 x000400 ramm1 : origin = 0 x000400, length = 0 x000400 /*外设模块组外设模块组0: */ dev_emu : origin = 0 x000880, length = 0 x000180 flash_regs: origin = 0 x000a80, length = 0 x000060 csm :

53、origin = 0 x000ae0, length = 0 x000010 xintf : origin = 0 x000b20, length = 0 x00002093.cpu_timer0: origin = 0 x000c00, length = 0 x000008 cpu_timer1: origin = 0 x000c08, length = 0 x000008 cpu_timer2: origin = 0 x000c10, length = 0 x000008 pie_ctrl : origin = 0 x000ce0, length = 0 x000020 pie_vect

54、: origin = 0 x000d00, length = 0 x000100 /*外设模块组外设模块组1: */ ecan_a : origin = 0 x006000, length = 0 x000100 ecan_ambox: origin = 0 x006100, length = 0 x000100 /*外设模块组外设模块组2: */ system : origin = 0 x007010, length = 0 x000020 spi_a : origin = 0 x007040, length = 0 x000010 sci_a : origin = 0 x007050, l

55、ength = 0 x000010 xintrupt : origin = 0 x007070, length = 0 x000010 gpiomux : origin = 0 x0070c0, length = 0 x000020 gpiodat : origin = 0 x0070e0, length = 0 x000020 adc : origin = 0 x007100, length = 0 x000020 ev_a : origin = 0 x007400, length = 0 x000040 ev_b : origin = 0 x007500, length = 0 x000040 spi_b : origin = 0 x007740, le

温馨提示

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

评论

0/150

提交评论