版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.1 4.1 集成开发环境集成开发环境CCSCCS4.2 4.2 代码生成工具代码生成工具4.3 CMD4.3 CMD内存定位文件的使用内存定位文件的使用4.4 4.4 用用CCSCCS开发简单的程序开发简单的程序4.5 DSP4.5 DSP的硬件开发调试工具的硬件开发调试工具周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.1 4.1 集成开发环境集成开发环境CCSCCS1999年年 TI 公司推出了公司推出了Code Composer Studio ( CCS )开发工具,它是一种功能强大的全面集成的开发环境开发工具,
2、它是一种功能强大的全面集成的开发环境( IDE ),支持,支持TI的的TMS320C6000TM、TMS320C5000TM、TMS320C2000TM、TMS320C3XTM DSP系列。系列。CCS集集代码生成工具和代调试工具于一体,可完成应用开发过代码生成工具和代调试工具于一体,可完成应用开发过程每一步骤所需要的众多功能。并且程每一步骤所需要的众多功能。并且CCS具有开放式的具有开放式的架构,使架构,使TI和第三方能通过无缝插入附加专用工具扩展和第三方能通过无缝插入附加专用工具扩展IDE功能。目前功能。目前CCS已经历已经历V1.0、V1.2、V2.0、V2.1、V2.2、V3.1等版本
3、。等版本。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院CCStudio 主要特性主要特性 可将所有工具紧密集成到单个简便易用的应用中;可将所有工具紧密集成到单个简便易用的应用中; 实时分析工具,在不影响处理器性能的情况下可实实时分析工具,在不影响处理器性能的情况下可实现监控程序交互作用;现监控程序交互作用; 在业界领先的在业界领先的C编译程序;编译程序; 可扩展的实时核心可扩展的实时核心( DSP/BIOSTM核心核心 ); Profile-Based Compiler(C6000TM DSP),用于优化,用于优化代码长度与性能;代码长度与性能; Visual Linker,用于
4、在内存中以图形化的方式安排,用于在内存中以图形化的方式安排程序代码与数据;程序代码与数据;周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 数据显示,用于以多种图形格式显示信号;数据显示,用于以多种图形格式显示信号; 开放式的插入式架构,使你能够集成专用的第三方开放式的插入式架构,使你能够集成专用的第三方工具;工具; 利用仿真器对利用仿真器对TI DSP进行基于进行基于JTAG扫描的实时仿真;扫描的实时仿真; 分析套件利用新的工具提高性能并简化烦琐的判断分析套件利用新的工具提高性能并简化烦琐的判断工作;工作; 增强的流水线分析工具可提供详细的流水线视图。增强的流水线分析工具可提供详细
5、的流水线视图。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.1.1 CCS4.1.1 CCS系统安装与设置系统安装与设置4.1.2 CCS4.1.2 CCS菜单和工具栏菜单和工具栏周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.1.1 CCS系统安装与设置系统安装与设置一、一、 CCS系统安装系统安装二、二、 为为CCS安装设备驱动程序安装设备驱动程序 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院一、一、 CCS系统安装系统安装 CCS对对PC机的最低要求为机的最低要求为Windows 95、32M RAM、100M剩余硬盘空间、奔腾剩余硬盘空间、奔
6、腾90以上处理器、以上处理器、SVGA显示器(分辨率显示器(分辨率800900以上)。以上)。 进行进行CCS系统安装时,先将系统安装时,先将CCS安装盘插入安装盘插入CD-ROM驱动器中,运行光盘根目录下的驱动器中,运行光盘根目录下的setup.exe,按,按照安装向导的提示将照安装向导的提示将CCS安装到硬盘中。安装完成安装到硬盘中。安装完成后,安装程序将自动在计算机桌面上创建如图后,安装程序将自动在计算机桌面上创建如图4-1所所示的示的“CCS 2(C5000)”,“Setup CCS 2 (C5000)”等快捷图标。等快捷图标。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院
7、图4-1 “CCS 2(C5000)”和“Setup CCS 2 (C5000)”快捷图标周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院二、二、 为为CCS安装设备驱动程序安装设备驱动程序 在安装在安装CCS之后、运行之后、运行CCS软件之前,首先需软件之前,首先需要运行要运行CCS设置程序,根据用户所拥有的软、硬件设置程序,根据用户所拥有的软、硬件资源对资源对CCS进行适当的配置。进行适当的配置。 启动启动Setup CCS 2(C5000)应用程序,单击)应用程序,单击Close按钮关闭按钮关闭Import Configuration对话框,将显对话框,将显示示Code Com
8、poser Studio Setup窗口,如图窗口,如图4-2所示。所示。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 图4-2 Code Compuser studio Setup窗口周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.1.2 CCS菜单和工具栏一、菜单一、菜单二、工具栏二、工具栏 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 图4-3 并口调试管理器周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 图4-4 CCS运行主窗口 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院一、一、 菜单菜单1File菜单菜单表4-
9、1 File菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院2Edit菜单菜单表4-2 Edit菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院3View菜单菜单表4-3 View菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4Project菜单菜单表4-4 Project菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院5Debug菜单菜单表5-5 Debug菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院6Profiler菜单菜单表4-6 Profiler菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 图
10、4-5 时钟设置周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院7Option菜单菜单表4-7 Option菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 图4-6 Memory Map对话框 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院8Tools菜单菜单表4-8 Tools菜单周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院二、二、 工具栏工具栏1Standard Toolbar Standard工具栏包括以下常用工具如图工具栏包括以下常用工具如图4-7所示:所示: 图4-7 Standard工具栏周鹏周鹏 安徽工程安徽工程大学大学电气工程
11、电气工程学院学院2GEL Toolbar GEL工具栏提供了执行工具栏提供了执行GEL函数的一种快捷方法,函数的一种快捷方法,如图如图4-8所示。在工具栏的左侧文本输入框中键入所示。在工具栏的左侧文本输入框中键入GEL函数名,再单击右侧的执行按钮即可执行相函数名,再单击右侧的执行按钮即可执行相应的函数。如果不使用应的函数。如果不使用GEL工具栏,也可以使用工具栏,也可以使用Edit菜单下的菜单下的Edit Command Line命令执行命令执行GEL函数。函数。图4-8 GEL工具栏 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院3Project Toolbar Project工
12、具栏提供了与工程和断点设置有关的命工具栏提供了与工程和断点设置有关的命令,令,Project工具栏提供了以下命令如图工具栏提供了以下命令如图4-9所示。所示。 图4-9 Project工具栏 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4Debug Toolbar Debug工具栏提供以下常用的调试命令如图工具栏提供以下常用的调试命令如图4-10所示。所示。 图4-10 Debug工具栏 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院5Edit Toolbar Edit工具栏提供了一些常用的编辑命令及书签命工具栏提供了一些常用的编辑命令及书签命令如图令如图4-11所示
13、。所示。 图4-11 Edit工具栏周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院6Plug-in Toolbars Plug-in Toolbars包括包括Watch Window和和DSP/BIOS两个窗口,其中两个窗口,其中Watch Window如图如图4-12所示。所示。 图4-12 Watch Window 工具栏周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院1. 1. 代码生成工具代码生成工具 (1 1)TMS320TMS320优化优化C C编译器编译器(Optimizing ANSI Optimizing ANSI C CompilersC Compil
14、ers) C C编译器的输入是编译器的输入是C C语言源代语言源代码,输出为码,输出为TMS320TMS320汇编代码,它用于把符合汇编代码,它用于把符合ANSIANSI标准的标准的C C代码转换为目标代码转换为目标DSPDSP汇编代码,汇编代码,使用户可以用使用户可以用C C语言编写代码。并且,配套的语言编写代码。并且,配套的代码调试工具支持代码调试工具支持C C代码的源码调试。代码的源码调试。TITI公司公司的编译器支持除的编译器支持除TMS320C1xTMS320C1x外的所有外的所有DSPDSP产品。产品。 4.2 4.2 代码生成工具代码生成工具周鹏周鹏 安徽工程安徽工程大学大学电气
15、工程电气工程学院学院(2 2)TMS320TMS320汇编器、连接器(汇编器、连接器(AssemblerAssembler、LinkerLinker) 汇编器和连接器用于把汇编代码转汇编器和连接器用于把汇编代码转换为可在目标换为可在目标DSPDSP上运行的可执行目标代码。上运行的可执行目标代码。支持宏汇编和目标库,产生的目标代码可重新支持宏汇编和目标库,产生的目标代码可重新定位,在程序地址空间中的具体地址可变。定位,在程序地址空间中的具体地址可变。其中汇编器用于把汇编语言文件转换成机器语其中汇编器用于把汇编语言文件转换成机器语言的目标文件。连接器用于把多个目标文件连言的目标文件。连接器用于把多
16、个目标文件连接成可执行的目标代码。在连接过程中,连接接成可执行的目标代码。在连接过程中,连接器完成目标代码的定位、解决符号的外部引用器完成目标代码的定位、解决符号的外部引用等。等。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院2 2代码调试工具代码调试工具(1 1)TMS320TMS320源码调试器(源码调试器(C Source DebuggerC Source Debugger) 它它在在PCPC机或工作站上运行,是开发环境中主机与软件仿机或工作站上运行,是开发环境中主机与软件仿真器、软件评价模块或硬件仿真器之间的标准接口。真器、软件评价模块或硬件仿真器之间的标准接口。它与这些调
17、试器一起配合使用,完成对用户程序的调它与这些调试器一起配合使用,完成对用户程序的调试。试。 程序调试可以在程序调试可以在C C、汇编或、汇编或C/C/汇编混合模式下进行汇编混合模式下进行调试,调试器具有条件执行、单步执行、断点等基本调试,调试器具有条件执行、单步执行、断点等基本功能,并支持多个功能,并支持多个DSPDSP。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院TMS320TMS320软件仿真器是一个软件程序,它在软件仿真器是一个软件程序,它在PCPC机或机或工作站上运行,通过模拟工作站上运行,通过模拟DSPDSP的运行验证和调试的运行验证和调试TMS320TMS320程序。
18、程序。采用软件仿真器,编程者可以在没有目标硬件的采用软件仿真器,编程者可以在没有目标硬件的情况下进行软件开发。情况下进行软件开发。在软件仿真器上调试用户软件时,可以用对主机在软件仿真器上调试用户软件时,可以用对主机数据文件的读写代替对特定数据文件的读写代替对特定I/OI/O的数据读写,以模拟的数据读写,以模拟与与DSPDSP接口的接口的I/OI/O器件;另外软件仿真还可以模拟中断器件;另外软件仿真还可以模拟中断信号。信号。 (2)TMS320软件仿真器(软件仿真器(TMS320 Software Simulators)周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院TMS320TMS
19、320有一系列系统调试工具用于代替或协助目有一系列系统调试工具用于代替或协助目标系统进行软件评价和开发。标系统进行软件评价和开发。现有的产品有:现有的产品有:DSKDSK初学者开发套件初学者开发套件(DSP Starter KitDSP Starter Kit)EVMEVM软件评估模块软件评估模块(Evaluation ModuleEvaluation Module)XDS510XDS510硬件仿真器硬件仿真器(Extend Development Extend Development Support EmulatorsSupport Emulators)。)。TITI公司还提供集成开发工具公
20、司还提供集成开发工具CCSCCS(Code Composer Code Composer StudioStudio),),CCSCCS可从网上下载,可进行软、硬件仿真可从网上下载,可进行软、硬件仿真和系统分析,受到广泛应用。和系统分析,受到广泛应用。(3)TMS320系统调试和评价工具系统调试和评价工具周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院图4-13 TMS320C54x DSP软件开发流程周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.2.1 C4.2.1 C编译器(编译器(C Compiler)4.2.2 4.2.2 汇编器(汇编器(Assembler)4
21、.2.3 4.2.3 链接器(链接器(Linker)4.2.4 4.2.4 交叉引用列表交叉引用列表4.2.5 4.2.5 十六进制转换工具十六进制转换工具 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.2.1 C编译器(编译器(C Compiler) C编译器(编译器(C compiler)将)将C源程序代码编译成源程序代码编译成为为TMS320系列对应汇编语言源代码。编译包中包括系列对应汇编语言源代码。编译包中包括外壳程序(外壳程序(shell program)、优化器()、优化器(optimizer)和内部列表公用程序(和内部列表公用程序(interlist utilit
22、y)。)。 其中,外壳程序能自动调用编译、汇编、连接等其中,外壳程序能自动调用编译、汇编、连接等工具,并接收相应的参数,简化用户的操作。优化工具,并接收相应的参数,简化用户的操作。优化器能通过代码的优化来提高器能通过代码的优化来提高C程序的效率。内部列表程序的效率。内部列表公用程序将公用程序将C源程序同汇编语言程序结合起来输出,源程序同汇编语言程序结合起来输出,供用户参考或完成手工优化。供用户参考或完成手工优化。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 图4-14 生成选项窗口编译器标签周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.2.2 汇编器(汇编器(As
23、sembler) 汇编器(汇编器(assembler)将汇编语言源文件转变为)将汇编语言源文件转变为基于公用目标文件格式(基于公用目标文件格式(COFF)的机器语言目标文)的机器语言目标文件,即通常指的件,即通常指的.OBJ文件。源文件可以包括汇编语文件。源文件可以包括汇编语言指令(言指令(instruction)、汇编指令()、汇编指令(assembler directives)和宏指令()和宏指令(macro directives)。)。C5000系系列提供两种指令集,用户可以选择使用助记符指令列提供两种指令集,用户可以选择使用助记符指令集(集(Mnemonic Instruction S
24、et)或代数指令集)或代数指令集(Algebraic Instruction Set),但两者不能混用。),但两者不能混用。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.2.3 链接器(链接器(Linker) 连接器(连接器(linker)就目标文件连接起来产生一)就目标文件连接起来产生一个可执行模块。它能调整并解决外部符号的引用。个可执行模块。它能调整并解决外部符号的引用。连接器的输入是可重新定位的连接器的输入是可重新定位的COFF目标文件和目目标文件和目标库文件。标库文件。 以上几个工具是以上几个工具是DSP软件开发所必备的。软件开发所必备的。 周鹏周鹏 安徽工程安徽工程大
25、学大学电气工程电气工程学院学院 在汇编程序生成代码中,链接器的作用如下:在汇编程序生成代码中,链接器的作用如下:(1)根据链接命令文件()根据链接命令文件(.cmd文件)将一个或多文件)将一个或多个个COFF目文件链接起来,生成存储器映象文件目文件链接起来,生成存储器映象文件(.map)和可执行的输出文件()和可执行的输出文件(.out文件)。文件)。(2)将段定位于实际系统的存储器中,给段、符)将段定位于实际系统的存储器中,给段、符号指定实际地址。号指定实际地址。(3)解决输入文件之间未定义的外部符号引用。)解决输入文件之间未定义的外部符号引用。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气
26、工程学院学院 图4-15 生成选项窗口链接器标签 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.2.4 交叉引用列表交叉引用列表 交叉引用列表也是一种调试工具,输入是连接交叉引用列表也是一种调试工具,输入是连接后的文件(后的文件(.out文件),输出文件是交叉引用列表。文件),输出文件是交叉引用列表。它列出符号、符号的定义及它们在连接后的源文件它列出符号、符号的定义及它们在连接后的源文件中的引用。中的引用。 要使用交叉引用公用程序,汇编时就必须使用要使用交叉引用公用程序,汇编时就必须使用正确的选项,并已连接为可执行文件。汇编时使用正确的选项,并已连接为可执行文件。汇编时使用选项
27、选项-x,产生一个交叉列表,连接器将该交叉引用信,产生一个交叉列表,连接器将该交叉引用信息添加到目标文件中。然后,便可以使用该工具输息添加到目标文件中。然后,便可以使用该工具输出交叉引用列表。出交叉引用列表。 TI的各的各DSP系列所使用交叉列表器不同。系列所使用交叉列表器不同。C5000系列使用系列使用xref500.exe;C3x/4x系列使用系列使用xref30.exe;C2000系列使用系列使用dspxref.exe;C6000系列使用系列使用xref6x.exe。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.2.5 十六进制转换工具十六进制转换工具 汇编器和连接器所产
28、生的目标文件采用汇编器和连接器所产生的目标文件采用COFF(公用目(公用目标文件格式)。这是一种二进制目标文件格式,它不仅仅包标文件格式)。这是一种二进制目标文件格式,它不仅仅包含含DSP执行代码,还包含有符号表,代码和数据的定位等调执行代码,还包含有符号表,代码和数据的定位等调试信息。所以,它支持模块化编程,对代码段和目标系统的试信息。所以,它支持模块化编程,对代码段和目标系统的存储器的管理,是更好和更灵活的方法。但大多数的存储器的管理,是更好和更灵活的方法。但大多数的EPROM编程器并不接受编程器并不接受COFF作为输入。该十六进制转换工作为输入。该十六进制转换工具,就是用来将具,就是用来
29、将COFF目标文件转换为若干种标准的目标文件转换为若干种标准的ASCII十十六进制格式,以便通用六进制格式,以便通用EPROM编程器识别。编程器识别。 各个系列各个系列DSP的十六进制转换工具有所不同。的十六进制转换工具有所不同。C5000系系列使用列使用hex500.exe;C3x/4x系列使用系列使用hex30.exe;C2000系列使系列使用用dsphex.exe;C6000系列使用系列使用hex6x.exe。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院汇编器和链接器功能的异同:汇编器和链接器功能的异同: 相同点:建立公共目标文件格式的目标文件;相同点:建立公共目标文件格
30、式的目标文件; 不同点:汇编器建立的是相对地址不同点:汇编器建立的是相对地址COFF文文件,即件,即.obj文件;链接器建立的是绝对地址文件;链接器建立的是绝对地址COFF文件,即文件,即.out文件。文件。汇编器根据汇编命令用适当的段将各部分程序代码汇编器根据汇编命令用适当的段将各部分程序代码和数据连在一起,构成目标文件;和数据连在一起,构成目标文件;链接器的一个任务就是分配存储单元,即把各个段链接器的一个任务就是分配存储单元,即把各个段重新定位到目标存储器中。重新定位到目标存储器中。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.3 CMD4.3 CMD内存定位文件的使用内存
31、定位文件的使用4.3.1 COFF4.3.1 COFF文件的基本单元文件的基本单元段段4.3.2 4.3.2 汇编器对段的处理汇编器对段的处理4.3.3 4.3.3 链接器对段的处理链接器对段的处理4.3.4 4.3.4 常用汇编伪指令常用汇编伪指令4.3.5 4.3.5 链接器命令文件的编写与使用链接器命令文件的编写与使用周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.3.1 COFF文件的基本单元文件的基本单元段段 段(段(sections)是)是COFF文件中最重要的概念。一个文件中最重要的概念。一个段就是最终在存储器映象中占据连续空间的一个数段就是最终在存储器映象中占据连
32、续空间的一个数据或代码块。目标文件中的每一个段都是相互独立据或代码块。目标文件中的每一个段都是相互独立的。一般地,的。一般地,COFF目标文件包含目标文件包含3个缺省的段:个缺省的段:text段、段、data段、段、bss段。段。 段可以分为两大类,即已初始化段和未初始化段。段可以分为两大类,即已初始化段和未初始化段。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.3.2 汇编器对段的处理汇编器对段的处理用于定义用于定义段段的汇编命令的汇编命令.bss .bss 未初始化段未初始化段.usect .usect 未初始化自定义段未初始化自定义段.text .text 已初始化程序正
33、文段已初始化程序正文段.data .data 已初始化程序数据段已初始化程序数据段.sect .sect 已初始化自定义段已初始化自定义段如果汇编语言程序中一个段命令都如果汇编语言程序中一个段命令都没有用,那么汇编器把程序中的内没有用,那么汇编器把程序中的内容都汇编到容都汇编到.text.text段。段。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院1未初始化段未初始化段 未初始化段主要用来在存储器中保留空间,通未初始化段主要用来在存储器中保留空间,通常将它们定位到常将它们定位到RAM中。这些段在目标文件中没有中。这些段在目标文件中没有实际内容,只是保留空间而已。程序可以在运行时实
34、际内容,只是保留空间而已。程序可以在运行时利用这些空间建立和存储变量。未初始化段是通过利用这些空间建立和存储变量。未初始化段是通过使用使用.bss和和.usect汇编伪指令建立的,两条伪指令的汇编伪指令建立的,两条伪指令的句法分别为:句法分别为:.bss符号,字数符号,字数 符号符号.usect“段名段名”,字数,字数周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院2已初始化段已初始化段 已初始化段包含可执行代码或已初始化数据。已初始化段包含可执行代码或已初始化数据。这些段的内容存储在目标文件中,加载程序时再放这些段的内容存储在目标文件中,加载程序时再放到到TMS320C54X存储器
35、中。三个用于建立初始化段存储器中。三个用于建立初始化段的伪指令句法分别为:的伪指令句法分别为: .text段起点段起点 .data段起点段起点 .sect“段名段名”,段起点,段起点周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院3命名段命名段 命名段就是程序员自己定义的段,它与缺省命名段就是程序员自己定义的段,它与缺省的的.text、.data和和.bss段一样使用,但与缺省段分开汇段一样使用,但与缺省段分开汇编。编。 data段不同的存储器中,将未初始化的变量汇段不同的存储器中,将未初始化的变量汇编到与编到与bss段不同的存储器中。产生命名段的伪指段不同的存储器中。产生命名段的伪
36、指令为:令为: 符号符号.usect“段名段名”,字数,字数 .sect “段名段名”,段起点,段起点周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4子段子段 子段(子段(Subsections)是大段中的小段。链接器可以)是大段中的小段。链接器可以像处理段一样处理子段。采用子段可以使存储器图像处理段一样处理子段。采用子段可以使存储器图更加紧密。子段的命名句法为:更加紧密。子段的命名句法为: 基段名:子段名基段名:子段名 子段也有两种,用子段也有两种,用.sect命令建立的是已初始化段,命令建立的是已初始化段,用用.usect命令建立的是未初始化段。命令建立的是未初始化段。周鹏周鹏
37、 安徽工程安徽工程大学大学电气工程电气工程学院学院5段程序计数器(段程序计数器(SPC) 汇编器为每个段安排一个独立的程序计数器,汇编器为每个段安排一个独立的程序计数器,即段程序计数器(即段程序计数器(SPC)。)。SPC表示一个程序代码表示一个程序代码段或数据段内的当前地址。开始时,汇编器将每个段或数据段内的当前地址。开始时,汇编器将每个SPC置置0,当汇编器将程序代码或数据加到一个段内,当汇编器将程序代码或数据加到一个段内时,相应的时,相应的SPC增加。如果汇编器再次遇到相同段增加。如果汇编器再次遇到相同段名的段,继续汇编至相应的段,且相应的名的段,继续汇编至相应的段,且相应的SPC在先在
38、先前的基础上继续增加。前的基础上继续增加。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.3.3 链接器对段的处理链接器对段的处理根据链接命令或链接命令文根据链接命令或链接命令文件(件(.cmd文件),将一个或多个文件),将一个或多个COFF目标文件链接目标文件链接起来,生成存储器映象文件(起来,生成存储器映象文件(.map)和可执行的输)和可执行的输出文件(出文件(.out)()(COFF目标模块)目标模块) 链接器在对段进行处理时,主要完成链接器在对段进行处理时,主要完成: (1)把一个或多个)把一个或多个COFF目标文件中的各种段作为目标文件中的各种段作为链接器的输入段,经
39、链接后在一个可执行的链接器的输入段,经链接后在一个可执行的 COFF输出模块中建立各个输出段。输出模块中建立各个输出段。(2)为各个输出段选定存储器地址)为各个输出段选定存储器地址。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院 链接器有两个命令完成上述功能,即:链接器有两个命令完成上述功能,即: MEMORY 命令命令定义目标系统的存储器配置图,定义目标系统的存储器配置图,包括对存储器各部分的命名,以及规定它们的起始包括对存储器各部分的命名,以及规定它们的起始地址和长度。地址和长度。 SECTIONS命令命令告诉链接器如何将输入段组合告诉链接器如何将输入段组合成输出段,以及在存储
40、器何处存放输出段。子段可成输出段,以及在存储器何处存放输出段。子段可以用来更精确地编排段,可用链接器以用来更精确地编排段,可用链接器SECTIONS命命令指定子段。令指定子段。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.3.4 常用汇编伪指令常用汇编伪指令周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院表 常用的汇编伪指令周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.3.5 链接器命令文件的编写与使用链接器命令文件的编写与使用一、一、 MEMORY伪指令及其使用伪指令及其使用二、二、 SECTIONS伪指令及其使用伪指令及其使用 (1 1)将)将有
41、多个选项的命令有多个选项的命令,写成一个链接写成一个链接器命令文件器命令文件.cmd.cmd。 (2 2)运行)运行链接器命令文件链接器命令文件.cmd.cmd,生成一个生成一个映象文件映象文件.map.map和一个可执行的输出文件和一个可执行的输出文件.out.out (3 3)进行存储器分配)进行存储器分配主主要要功功能能 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院一、一、 MEMORY伪指令及其使用伪指令及其使用MEMORYMEMORY命令用来定义目标系统命令用来定义目标系统中所包中所包含的各种形式的存储器含的各种形式的存储器的存储器配置的存储器配置图,包括对存储器各部分
42、命名,以及图,包括对存储器各部分命名,以及规定它们的起始地址和长度。规定它们的起始地址和长度。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院MEMEORYMEMEORY PAGE 0: name 1 PAGE 0: name 1 (attrattr): origin=constant, length=constant: origin=constant, length=constantPAGE n: name n PAGE n: name n (attrattr): origin=constant, length=constant: origin=constant, length=c
43、onstant MEMORY命令的一般句法命令的一般句法对一个存储空间加以标记,每一个对一个存储空间加以标记,每一个PAGE代表一代表一个完全独立的地址空间。页号个完全独立的地址空间。页号n最多可规定为最多可规定为255,取决于目标存储器的配置。通常,取决于目标存储器的配置。通常PAGE 0定定为程序存储器,为程序存储器,PAGE 1定为数据存储器。如果定为数据存储器。如果没有规定没有规定PAGE,则链接器就目标存储器配置在,则链接器就目标存储器配置在PAGE 0。周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院MEMEORYMEMEORY PAGE 0: name 1 PAGE 0
44、: name 1 (attrattr): origin=constant, length=constant: origin=constant, length=constantPAGE n: name n PAGE n: name n (attrattr): origin=constant, length=constant: origin=constant, length=constant MEMORY命令的一般句法命令的一般句法任选项,为命名区规定任选项,为命名区规定1 14 4个属性。如果有选项,个属性。如果有选项,应写在括号内。应写在括号内。当输出段定位到存储器时,当输出段定位到存储器时,
45、可利用属性加以限制。可利用属性加以限制。规定一个存储区的起始规定一个存储区的起始地址。键入地址。键入originorigin、orgorg或或o o都可以。这个值是一都可以。这个值是一个个1616位二进制常数,可位二进制常数,可以用十进制数、八进制以用十进制数、八进制数或十六进制数表示。数或十六进制数表示。 规定一个存储区的长度,键规定一个存储区的长度,键入入lengthlength、lenlen或或l l都可以。都可以。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院R 规定可以对存储器执行读操作。规定可以对存储器执行读操作。W 规定可以对存储器执行写操作。规定可以对存储器执行写
46、操作。X 规定存储器可以装入可执行的程序代码。规定存储器可以装入可执行的程序代码。I 规定可以对存储器进行初始化。规定可以对存储器进行初始化。如果一项属性都没有选,就可以将输出段不受限制如果一项属性都没有选,就可以将输出段不受限制地定位到任何一个存储器位置。任何一个没有规定属地定位到任何一个存储器位置。任何一个没有规定属性的存储器都默认有全部性的存储器都默认有全部4项属性。项属性。属性选项一共有属性选项一共有4项项 :周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院二、二、 SECTIONS伪指令及其使用伪指令及其使用功能:功能:告诉链接器如何将输入段合成输出段在可执行程告诉链接器如
47、何将输入段合成输出段在可执行程序中定义输出段序中定义输出段规定输出段在存储器中的存放位置允许重新命名规定输出段在存储器中的存放位置允许重新命名输出项。输出项。在链接器命令文件中,在链接器命令文件中,SECTIONS命令用大命令用大写字母,紧随其后并用大括号括起来的是关写字母,紧随其后并用大括号括起来的是关于输出段的详细说明。每一个输出段的说明于输出段的详细说明。每一个输出段的说明都从段名开始。段名后面是一行说明段的内都从段名开始。段名后面是一行说明段的内容和如何给段分配存储单元的性能参数。容和如何给段分配存储单元的性能参数。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院SECTI
48、ONSSECTIONS namename:property,property,property,property,property,property,namename:property,property,property,property,property,property,namename:property,property,property,property,property,property, SECTIONS命令的一般句法命令的一般句法 性能参数性能参数 定义将输出段加载到存储器中定义将输出段加载到存储器中的什么位置。的什么位置。句法:句法:load=allocation 或者用大于号
49、代替或者用大于号代替“load=” allocation 或者省掉或者省掉“load=” allocation其中其中allocationallocation是关于输出段地址的说明,即给是关于输出段地址的说明,即给输出段分配存储单元。输出段分配存储单元。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院.text:load=0 x1000 将输出段将输出段.text定位到一个特定地址。定位到一个特定地址。.text:ROM 将输出段将输出段.text定位到名为定位到名为ROM的存储区的存储区.bss:(RW)将将.bss段定位到属性为段定位到属性为R、W的存储区的存储区.text:a
50、lign=0 x80 将将.text定位到定位到0 x80开始的存储区。开始的存储区。.bss:load=block(0 x80)将)将.bss定位到一个定位到一个n字存储器字存储器 块的任何一个位置(块的任何一个位置(n为为 2的幂次)。的幂次)。.text: PAGE 0 将输出段将输出段.text定位到定位到PAGE 0。注:如果要用到一个以上参数,可以将它们排成一行注:如果要用到一个以上参数,可以将它们排成一行例如:例如:.text:ROM align (16) PAGE(2) 或者为方便阅读,可用括号括起来:或者为方便阅读,可用括号括起来:.text: load=(ROM align
51、 (16) PAGE(2) 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院例例 链接器命令文件举例。链接器命令文件举例。a.obj b.obj /* 输入文件名输入文件名 */-o prog.out /* 选项选项 */-m prog.map /* 选项选项 */MEMORY /* MEMORY 命令命令 */ PAGE0: ROM: origin=1000h, length=0100h PAGE1: RAM: origin=0100h, length=0100hSECTIONS /* SECTIONS 命令命令 */.text: ROM.data: ROM.bss: RAM如果链
52、接器认定一个文件为如果链接器认定一个文件为目标文件,就对它链接;否目标文件,就对它链接;否则就假定它是一个命令文件,则就假定它是一个命令文件,并从中读出命令和进行处理。并从中读出命令和进行处理。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院4.4 4.4 用用CCSCCS开发简单的程序开发简单的程序 CCS2.0项目管理,应用程序按项目来管理,按层次项目管理,应用程序按项目来管理,按层次以图形化的方式显示以图形化的方式显示 项目文件项目文件(.mak) CMD文件文件 .h头文件头文件 .lib库文件库文件 .c源程序源程序周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学
53、院1创建新的工程文件创建新的工程文件 工程文件中包含着设计中所有的源代码文件、工程文件中包含着设计中所有的源代码文件、链接器命令文件、库函数、头文件等。链接器命令文件、库函数、头文件等。(1)在)在CCS的安装目录的的安装目录的myprojects子目录下创建一子目录下创建一个个volume1目录。目录。 (2)启动)启动CCS,在,在Project菜单中选择菜单中选择New项,在项,在Project中输入中输入volume1,CCS将创建一个名为将创建一个名为volume1.pjt的工程。的工程。 周鹏周鹏 安徽工程安徽工程大学大学电气工程电气工程学院学院2.将文件添加到工程中将文件添加到工程中(1)将文件添加到工程中)将文件添加到工程中 (2)察看工程的结构(如图所示)。)察看工程的结构(如图所示)。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家具购销的简单合同范本
- 全新财务人员劳动合同
- 大楼物业管理委托合同
- 后八轮自卸车租赁合同范本
- 沪教版(上海)七年级地理第一学期祖国篇(上)4.3《长江》听课评课记录
- 股东合作协议合同模板
- 加盟合同协议书范本
- 搅拌站矿粉购销简易合同
- 《研究性学习》课程实施方案
- 合同书样本范文电子版
- 2024年江苏经贸职业技术学院单招职业适应性测试题库一套
- 药用植物种植制度和土壤耕作技术
- 《火力发电企业设备点检定修管理导则》
- 重庆市渝北区2024年八年级下册数学期末统考模拟试题含解析
- 保安服务项目信息反馈沟通机制
- 《团队介绍模板》课件
- 常用中医适宜技术目录
- 冲压模具价格估算方法
- 运动技能学习与控制课件第十一章运动技能的练习
- 虫洞书简全套8本
- 2023年《反电信网络诈骗法》专题普法宣传
评论
0/150
提交评论