admin管理员组

文章数量:1647687

2024年1月31日发(作者:)

用于MSP430™的IAR嵌入式工作平台版本3+用户指南LiteratureNumber:ZHCU026XJune2004–RevisedNovember2011

内容.5现在就开始!.........................................................................................................................71.1软件安装......................................................................................................................81.2LED闪烁.....................................................................................................................81.3光盘和网络上重要的MSP430文档.......................................................................................9开发流程............................................................................................................................102.1概述..........................................................................................................................112.2使用112.2.1项目设置...........................................................................................................122.2.2用于MSP430L092/MSP430C092的附件项目设置.........................................................132.2.3从零开始创建一个项目...........................................................................................152.2.4用于LPMx.5调试的附加项目设置..............................................................................162.2.5MSP430器件的密码保护........................................................................................172.2.6使用一个现有的IARV1.x/V2.x/V3.x项目.....................................................................182.2.7堆栈管理和.xcl文件.............................................................................................182.2.8如何生成德州仪器(TI).TXT(和其它格式)文件............................................................182.2.9示例程序概述......................................................................................................182.3使用182.3.1断点类型...........................................................................................................192.3.2使用断点...........................................................................................................202.3.3使用单步执行......................................................................................................212.3.4使用观察窗口......................................................................................................21常见问题和解答...................................................................................................................23A.1硬件..........................................................................................................................24A.2程序开发(汇编语言、C语言编译器、连接器)......................................................................24A.3调试中(C-SPY)............................................................................................................26FET专用菜单.....................................................................................................................30B.1菜单..........................................................................................................................31B.1.1Emulator→31B.1.2Emulator→31B.1.3Emulator→31B.1.4Emulator→31B.1.5Emulator→31B.1.6Emulator→31B.1.7Emulator→Advanced→31B.1.8Emulator→Advanced→31B.1.9Emulator→Advanced→32B.1.10Emulator→Advanced→32B.1.11Emulator→32B.1.12Emulator→32B.1.13Emulator→.32B.1.14Emulator→"32B.1.15Emulator→32B.1.16Emulator→32内容ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated2

...........................................................................32文档修订历史记录.........................................................................................................................33B.1.17Emulator→ForceSingleSteppingZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated内容3

图片列表1-1.1-2.2-1.2-2.2-3.2-4.2-5.2-6.激活项目......................................................................................................................8在WorkspaceOverview中激活项目.....................................................................................9L092模式...................................................................................................................13C092仿真模式.............................................................................................................13C092密码..................................................................................................................14启用16LPMx.5通知................................................................................................................17JTAG密码..................................................................................................................17图表列表2-1.器件架构、断点和其它仿真特性.........................................................................................194图片列表ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

PrefaceZHCU026X–June2004–RevisedNovember2011请先阅读关于本手册这本手册说明了IAR嵌入式工作平台(EW430)(带有MSP430超低功耗微控制器)™的使用方法。如何使用本手册阅读并按照Chapter1中的指令操作,现在就开始!。这一章提供了安装软件的指令,并对如何运行演示程序进行了说明。在您发现开发工具是多么快速且易于使用之后,TI建议您从头至尾阅读本手册。这本手册只描述了软件开发环境的设置和基本操作,并没有对MSP430微控制器或者完整的开发软件和硬件系统进行完整说明。要获得这些项的更多细节,请见德州仪器(TI)提供的相关文档中列出的相关TI和IAR™文档,光盘和网络上的重要MSP430文档。这本手册应用于德州仪器(TI)的MSP-FET430UIF,MSP-FET430PIF,和eZ430开发工具系列的使用。这些工具包含封装时可以获得的最新材料。要获得这些最新的材料(数据表、用户指南、软件、应用信息等),请访问TIMSP430网站/msp430或者与您当地的销售办事处联系。注意事项和警告信息本文档有可能包含注意事项和警告。CAUTION这是一个注意事项声明的例子。注意事项声明描述了一种有可能损坏您的软件或者设备的情况。WARNING这是一个警告声明的例子。一个警告声明描述了一种有可能对您造成伤害的情况。注意事项或者警告中所提供的信息是为了保护您的安全。请仔细阅读每一条注意事项和警告。(带有MSP430超低功耗微控制器)026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated请先阅读5

德州仪器(TI)提供的相关文档德州仪器(TI)提供的相关文档MSP430开发工具文档:《MSP430硬件工具用户指南》,文献号SLAU278《eZ430-F2013开发工具用户指南》,文献号SLAU176《eZ430-RF2480用户指南》,文献号SWRA176《eZ430-RF2500开发工具用户指南》,文献号SLAU227《eZ430-RF2500-SEH开发工具用户指南》,文献号SLAU273《eZ430-Chronos开发工具用户指南》,文献号SLAU292MSP430器件数据表《MSP430x1xx系列产品用户指南》,文献号SLAU049《MSP430x2xx系列产品用户指南》,文献号SLAU144《MSP430x3xx系列产品用户指南》,文献号SLAU012《MSP430x4xx系列产品用户指南》,文献号SLAU056《MSP430x5xx/MSP430x6xx系列产品用户指南》,文献号SLAU208CC430器件数据表《CC430系列产品用户指南》,文献号SLAU259如果您需要协助德州仪器(TI)产品信息中心(PIC)提供对MSP430器件和FET开发工具的技术支持。PIC的联系信息可从TI网站/support上获得。德州仪器(TI)E2E社区支持论坛为同行工程师、TI工程师,和其他专家提供了公开交流的平台。可在MSP430网站上找到附加的专用器件信息。注:KickStart™由德州仪器(TI)提供技术支持。虽然Kickstart是IAR的产品,但是德州仪器(TI)提供针对它的技术支持。因此,请不要向IAR寻求针对Kickstart的技术帮助。在请求帮助前,请先查阅与Kickstart一提供的大量文档。FCC警告本设备仅限于在实验室测试环境中使用。它会生成、使用和发出射频能量,而且尚未依照FCC规则第15部分第J子部分中为提供合理的射频干扰保护而制定的计算设备限制执行符合性测试。在其它环境中操作本设备可能会干扰无线电广播通信,在此情况下,将要求用户自行采取相应措施以消除这种干扰。6请先阅读ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

Chapter1ZHCU026X–June2004–RevisedNovember2011现在就开始!这一章提供了安装软件的指令,并显示了如何运行演示程序。TopicPage1.11.21.3软件安装.............................................................................................................8LED闪烁............................................................................................................8光盘和网络上重要的MSP430文档...........................................................................9ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated现在就开始!7

软件安装1.1软件安装按照提供的请先读我(READMEFIRST)文件中的指令来安装IAR嵌入式Workbench™KickStart。阅读来自IAR的文件<安装目录>以获得与Workbench有关的最新信息。术语Kickstart是指嵌入式工作平台(包括C-SPY™调试器)的受限制版本。Kickstart在光盘上与每个FET一起提供,而最新版本可从MSP430网站上获得。在前一段(和本文档)中提到的文档可通过:开始→程序→IARSystems→IAREmbeddedWorkbenchKickStartforMSP430V3进行访问。Kickstart与Windows2000(SP4),WindowsXP(32位和64位),WindowsVista(32位和64位),以及Windows7(32位和64位)兼容。然而,USBFET接口只与WindowsXP(32位和64位),WindowsVista(32位和64位),以及Windows7(32位和64位)一起工作。1.2LED闪烁在FET上演示的这部分内容相当于C语言中的“世界您好!”介绍性程序。一个使LED发光的应用被开发并下载至FET,然后运行。1.启动开发平台(开始→程序→IARSystems→IAREmbeddedWorkbenchKickStartforMSP430V3→IAREmbeddedWorkbench)。2.点击File→OpenWorkspace来打开位于:<安装目录>EmbeddedWorkbenchx.x430FET_下的文件。工作平台窗口打开。3.点击工作平台窗口底部与MSP430器件(MSP430xxxx)和所需语言(汇编语言或者C语言)相对应的标签来将一个项目激活(请见图1-1)。图1-1.激活项目8现在就开始!ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

光盘和网络上重要的MSP430文档或者,在WorkspaceOverview标签内右键点击来激活项目(请见图1-2)。图1-2.在WorkspaceOverview中激活项目4.点击Project→Options→FETDebugger→Setup→Connection来选择合适的端口:德州仪器(TI)LPT-IF用于并行FET接口(MSP-FET430PIF)或者德州仪器(TI)USB-IF用于USB接口(MSP-FET430UIF)或者用于eZ430。5.点击Project→RebuildAll来建立和连接源代码。通过双击项目,然后双击显示的源文件来查看源代码。6.点击Project→Debug来启动C-SPY调试器。C-SPY擦除器件闪存,然后将应用对象文件下载到器件闪存中。如果C-SPY不能与器件通信,请见常见问题和解答(FAQ)调试中#1。7.点击Debug→Go来启动应用。LED应该闪烁。8.点击Debug→StopDebugging来停止调试,退出C-SPY,并返回工作平台。9.点击File→Exit来退出工作平台。恭喜,您刚刚建立并测试了一个MSP430应用程序!1.3光盘和网络上重要的MSP430文档专用器件数据表和用户手册是MSP430信息的主要来源。生产时这些文档可获得的最新版本与这个工具一起通过只读光盘提供。MSP430网站(/msp430)上有这些文档的最近版本。描述CCS工具(Workbench/C-SPY、汇编程序、C语言编译器、连接器、和库)的PDF文档位于commondocand430doc文件夹内。此文档的附录(即,最新信息)以HTML格式存放在同一目录内。430docreadme_为IAR文档导航提供了便捷的开始点。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated现在就开始!9

Chapter2ZHCU026X–June2004–RevisedNovember2011开发流程这一章对如何使用Kickstart来开发应用软件以及如何使用C-SPY来对此软件进行调试进行了说明。TopicPage2.12.22.3概述.................................................................................................................11使用11使用1810开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

概述2.1概述使用汇编语言和/或者C语言来开发应用,并使用C-SPY对它们进行调试。C-SPY被无缝集成到工作平台内。然而,对代码开发环境(工作平台)和调试器(C-SPY)进行区分会使使用更加便捷。C-SPY可被配置为与FET(即,一个真实的MSP430器件)一起运行或者与器件的软件模拟器一起工作。Kickstart是指Workbench和C-SPY一起。Kickstart软件工具是IAR的一个产品。MSP430系列和Kickstart的文档范围很广。提供这个工具的光盘包含大量的MSP430说明性文档。MSP430主页(/msp430)是MSP430信息的另外一个来源。Kickstart的组件(工作平台/调试器、汇编程序、编译器、连接器)完全记录在<安装目录>ndocand文件中,此文件遍及包含最近更新信息和PDF文件附录的Kickstart目录树中。此外,Kickstart文档也可通过在线帮助文件获得。IAR和TI提供的请先读我(ReadMeFirst)文件和这个文档可通过使用开始→程序→IARSystems→IAREmbeddedWorkbenchKickStartforMSP430V3来访问。工具Workbench/C-SPY汇编程序编译器C语言库连接器和库管理程序用户指南EW430_430_430_最近更新的信息,,,,a430_,icc430_,,2.2使用KickStartKickstart版本是一款IAR嵌入式工作平台的特别启动器-工具套件/评估版本,此工作平台在提供的代码尺寸和服务以及支持方面受到限制。限制:•C语言编译器不生成一个汇编代码列表文件。•对于传统MSP430器件,MSP430IARKickstartC/C++编译器的代码尺寸限制被设定为4K字节,而对于MSP430X器件,被设定为8K字节(与何种MSP430器件所采用何种架构的详细信息,请见表2-1)。•发布的IAR汇编程序为无任何限制的完全版本。•IARXLINK连接器将为传统的MSP430器件连接最大4K字节的C语言源代码,而对于MSP430X器件,将连接8K字节的C语言源代码(与何种MSP430器件所采用何种架构的详细信息,请见表2-1),但是对于来自汇编代码,则没有数量限制。•IARKickstartC-SPY模拟器将为传统的MSP430器件读取最大4K字节的C语言代码的,而对于MSP430X器件,将读取8K字节的C语言代码,但是可读取无数量限制的汇编代码(与何种MSP430器件所采用何种架构的详细信息,请见表2-1)。•MISRAC不可用。•运行时间库源代码不包括在内。软件工具的完全(也就是说,无限制)版本可从IAR购买。一个中等特性工具集-被称为Baseline,和一个12K字节的C语言代码长度限制以及基本浮点运算-也可从IAR获得。更多信息请见IAR的网站()。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated开发流程11

使用2.2.1项目设置配置Workbench和C-SPY所需的设置很多且十分详细。当处理项目配置时,请阅读并充分理解IAR所提供的文档。对所提供的汇编程序和C语言示例的项目设置进行检查(使用Project→Options选择项目名称来访问项目设置)。当开发您自己的项目时,请将这些项目设置作为模版。请注意,如果在进行项目设置时没有选择项目名称,那么所做的设置将被应用于所选择的文件(而不是项目)。建议使用/必须使用以下项目设置:•指定目标器件(GeneralOptions→Target→Device)。•启用一个汇编程序项目或者一个C语言/汇编语言项目(GeneralOptions→Target→Assembler-onlyproject)。•生成一个可执行输出文件(GeneralOptions→Output→Outputfile→Executable)。•为了尽可能轻松地调试一个C语言项目,请禁用优化[C/C++Compiler→Optimizations→Size→None(Bestdebugsupport)]。•在编译器输出中生成调试信息(C/C++Compiler→Output→Generatedebuginformation)。•为C语言预处理器指定搜索路径(C/C++Compiler→Preprocessor→IncludePaths)。•在汇编程序输出中生成调试信息(Assembler→Output→GenerateDebugInfo)。•为汇编程序预处理器指定搜索路径(Assembler→Preprocessor→IncludePaths)。•使用C-SPY调试项目,指定一个兼容格式[Linker→Output→Format→DebuginformationforC-SPY(带有运行时间控制模块/带有I/O仿真模块)(Withruntimecontrolmodules/WithI/Oemulationmodules)]。•为任一已使用的库指定搜索路径(Linker→Config→Searchpaths)。•指定C-SPY驱动器。选择Project→Options→Debugger→Setup→Driver→FETDebugger在FET(即,MSP430器件)上进行调试。选择Simulator在模拟器上进行调试。如果FET调试器被选择,那么使用Project→Options→FETDebugger→Setup→Connection来选择合适的端口:TexasInstrumentsLPT-IF用于并行FET接口(MSPFET430PIF)或者TexasInstrumentsUSB-IF用于USB接口(MSP-FET430UIF)或者用于eZ430。•启用器件说明文件。这个文件使C-SPY“注意到”正在调制的器件细节。这个文件与指定目标器件相对应(Debugger→Setup→Devicedescriptionfile→Overridedefault)。•在项目代码下载之前启用主内存和信息内存擦除(Properties→Download→EraseMainandInformationMemory)。•为了在调试期间将系统性能最大化,请禁用虚拟断点(FETDebugger→Breakpoints→Usevirtualbreakpoints)并禁用所有系统断点(FETDebugger→Breakpoints→Systembreakpointson)。注:使用出厂设置(FactorySettings)来快速配置一个项目。使用FactorySettings按钮将一个项目快速配置为一个可用状态。下面的步骤可被用于快速配置一个项目。请注意通用选项(GeneralOptions)标签上没有FactorySettings按钮。1.指定目标器件(GeneralOptions→Target→Device)。2.启用一个汇编语言项目或者一个C语言/汇编语言项目(GeneralOptions→Target→Assembler-onlyproject)。3.生成一个可执行输出文件(GeneralOptions→Output→Outputfile→Executable)。4.将编译器置成出厂设置(C/C++Compiler→FactorySettings)。5.将汇编程序置成出厂设置(Assembler→FactorySettings)。6.将连接器置成出厂设置(Linker→FactorySettings)。7.将C-SPY置成出厂设置(Debugger→FactorySettings)。8.在硬件上调试(Debugger→Setup→Driver→FETDebugger)。9.指定用于连接FET的可用并行端口(如果不是LPT1的话)(FETDebugger→Setup→Connection→TexasInstrumentsLPT-IF)或者指定USB端口(FETDebugger→Setup→Connection→Texas12开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

使用KickStartInstrumentsUSB-IF)。注:在提及文件时,避免使用绝对路径名称。相反地,使用相对路径名称关键字$TOOLKIT_DIR$和$PROJ_DIR$。这些关键字的说明请见IAR文档。相对路径名称的使用可允许项目轻松迁移,并且当IAR系统升级时(例如,从Kickstart或者Baseline升级到完全版),无需修改项目。2.2.2用于MSP430L092/MSP430C092的附件项目设置MSP430L092可运行在两种不同的模式下:L092模式和C092仿真模式。C092仿真模式的用途是模拟一个带有高达1920代码字节的C092,此C092正处于掩码生成的最后阶段。启动调试器之前,运行模式由EW430确定。有两个单选按钮用于模式选择。缺省情况下,L092模式被选择(请见图2-1和图2-2)。图2-1.L092模式图2-2.C092仿真模式ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated开发流程13

使用2.2.2.1MSP430L092加载程序代码MSP430L092中的加载程序代码是TI的ROM代码,此代码提供一系列的服务。它使得用户能够在无需开发一个ROM掩码的情况下建立匿名应用。这样一个应用包括一个MSP430器件,此器件含有加载程序(例如,MSP430L092)和一个SPI内存器件(例如,'95512或者'25AA40);可从不同的制造商获得这些器件和相似器件。带有一个加载程序器件和外部SPI内存(用于本地0.9V电源电压)的主流应用情况是后期开发、原型开发、和小批量试产。图2-1显示了将应用载入外部SPI内存的选择。2.2.2.2MSP430C092密码保护MSP430C092是一款用户专用ROM器件,此器件受到密码保护。为了启动一个调试会话,密码必须被提供给EW430。图2-3显示了如何在EW430中提供一个十六进制(HEX)密码。图2-3.C092密码14开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

使用KickStart2.2.3从零开始创建一个项目这一部分介绍了如何从零开始一步步地创建一个汇编语言或者C语言项目的指令以及在MSP430上下载和运行此应用(请见2.2.1节,项目设置)。《MSP430IAR嵌入式工作平台IDE用户指南》提供了此过程一个更加综合性的概述。1.启动工作平台(Start→Programs→IARSystems→IAREmbeddedWorkbenchKickStartforMSP430V3→IAREmbeddedWorkbench)。2.创建一个新的文本文件(File→New→File)。3.将程序文本输入到文件。注:使用.h文件来简化代码开发。定义器件寄存器和每一个器件位名称的文件与Kickstart一起提供。这些文件可以大大简化您的程序开发任务。此文件位于<安装目录>EmbeddedWorkbenchx.x430inc。其中包括与您文本文件中目标器件相对应的.h文件(#include"msp430xyyy.h")。此外,还提供了文件io430xxxx.h,此文件因包含C源文件而被优化。4.保存程序文本文件(File→Save)。建议将汇编语言文本文件保存为一个文件类型后缀为".s43"的文件,而将C语言文本文件保存为一个文件类型后缀为".c"的文件。5.创建一个全新的工作区(File→New→Workspace)。6.创建一个新项目(Project→CreateNewProject)。选择工具链:MSP430,项目模版:清空项目并点击'OK'。指定一个项目名称并点击保存(Save)。7.将程序文本文件添加到项目(Project→AddFiles)。选择程序文件并点击打开(Open)。或者,双击文件将其添加到项目。注:如何将汇编语言源文件添加到您的项目中出现在添加文件(AddFiles)窗口中的默认文件类型为"C/C++Files"。为了查看汇编语言文件(.s43),在"Filesoftype"下拉菜单中选择"AssemblerFiles"。8.保存工作区(File→SaveWorkspace)。指定工作区名称并点击Save。9.配置项目选项(Project→Options)。对于每一个子类别(GeneralOptions,C/C++Compiler,Assembler,Linker,Debugger),接受默认FactorySettings,以下情况除外:•指定目标器件(GeneralOptions→Target→Device)。•启用一个汇编语言项目或者一个C语言/汇编语言项目(GeneralOptions→Target→Assembler-onlyproject)。•生成一个可执行输出文件(GeneralOptions→Output→Outputfile→Executable)。•为了在FET(即,MSP430)上进行调试,点击Debugger→Setup→Driver→FETDebugger。•指定用于与FET连接的可用端口(FETDebugger→Setup→Connection)。10.建立项目(Project→RebuildAll)。11.用C-SPY调试应用(Project→Debug)。这样将启动C-SPY,从而使其获得对目标器件的控制,擦除目标方内存,使用应用程序编辑目标方内存,并将目标方复位。如果C-SPY不能与器件通信,请见FAQ调试中#1。12.点击Debug→Go来启动应用。13.点击Debug→StopDebugging来停止应用,退出C-SPY,并返回工作平台。14.点击File→Exit来退出工作平台。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated开发流程15

使用2.2.4用于LPMx.5调试的附加项目设置2.2.4.1LPMx.5是什么LPMx.5是一个低功耗模式,在这个模式中,对于进入和退出的处理与其它低功耗模式不同。当正确使用时,LPMx.5提供器件上可用的最低功耗。为了实现这一功能,进入LPMx.5模式会禁用PMM模块的低压降稳压器(LDO),从内核和器件的JTAG模块上移除电源电压。由于内核上的电源电压被移除,所有寄存器内容和SRAM内容丢失。从LPMx.5模式中退出会引起一个BOR事件,这个事件会强制器件完全复位。2.2.4.2调试LPMx.5要启用LPMx.5调试特性,必须通过点击FETDebugger→Setup→DebugLPMx.5来选择"DebugLPMx.5"单选框(请见图2-4)。图2-4.启用LPMx.5如果LPMx.5调试模式被启用,目标方器件每次进入和离开LPMx.5模式时,在调试器(Debugger)的日志文件内会显示一个通知。图2-516开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

使用KickStart图.5通知按下EW430中的Halt(停止)或者Reset(复位)按钮将器件从LPMx.5模式中唤醒并在代码启动时将其停止。在LPMx.5模式之前有效的所有断点被自动恢复且重新激活。2.2.4.3LPMx.5调试限制当一个目标方器件处于LPMx.5模式,不能设置或者移除高级条件或者软件断点。但有可能设置硬件断点。此外,只有在LPMx.5模式期间设置的硬件断点才能够在LPMx.5模式中被移除。由于会引起器件复位,连接正在运行的目标方不能与LPMx.5模式调试组合使用。2.2.5MSP430器件的密码保护当调试一个支持用户密码保护的MSP430器件时,十六进制JTAG密码必须被提供来启动一个调试回话。点击FETDebugger→Download→JTAGpassword来设定JTAG密码(请见图2-6)。图密码ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated开发流程17

使用2.2.6使用一个现有的IARV1.x/V2.x/V3.x项目可使用一个来自IARIARV1.x/V2.x/V3.x系统和全新的IARV4.x系统的已有项目;请见IAR文档《的逐步迁移》。这个文档位于<安装根目录>。2.2.7堆栈管理和.xcl文件通过项目选项对话(GeneralOptions→Stack/Heap)或者通过对.xcl连接器控制文件的直接修改来配置保留的堆栈大小。这些被输出到连接器的文件包含控制器件内存(RAM,闪存)分配的基本指令。这些文件完整说明请见IARXLINK文档。与FET一起提供的.xcl文件(<安装根目录>)定义了一个称为CSTACK的浮动段(RSEG)。CSTACK用于定义RAM区域,此区域被用于C语言程序内的系统堆栈。CSTACK也可被用在汇编语言程序中(MOV.W#SFE(CSTACK)MSP)。CSTACK被确定为从RAM的最后位置延伸50个字节(也就是说,此堆栈从RAM向下延伸50个字节)。.xcl文件中其它基本指令定义了其它浮动区域,这些区域可从RAM的首位置分配至堆栈底部。请注意以下关键内容:•提供的.xcl文件都会为堆栈保留50个字节的RAM,这与是否真正需要这一数量的堆栈(或者保留的数量是否满足需要)无关。•没有针对堆栈的运行时间检查。此堆栈可溢位50个被保留的字节,并有可能写覆盖其它段。无错误被输出。可对提供的.xcl文件进行修改以调整堆栈的大小来满足应用的需要;编辑-D_STACK_SIZE=xx来为堆栈分配xx个字节。请注意,如果需要的话,.xcl文件还为堆保留50个字节(例如,通过malloc())。2.2.8如何生成德州仪器(TI).TXT(和其它格式)文件为了与GANG430和PRGS430编程器一起使用,Kickstart连接器可被配置成以格式输出项目。点击Project→Options→Linker→Output→Format→Other→msp430-txt。也可选择Intel™和Motorola™格式。更多信息,请见附录A中的FAQ程序开发#6。2.2.9示例程序概述<安装根目录>EmbeddedWorkbenchx.x430FET_examples提供了针对MSP430器件的示例程序。每个工具文件夹包含含有汇编程序和C语言源代码的文件夹。<安装根目录>EmbeddedWorkbenchx.x430FET_非常便捷地将FET_1演示代码组织成为一个工作区。此工作区包含用于每个MSP430器件系列的汇编语言和C语言项目。提供用于每一个项目的调试和发布版本。<安装根目录>EmbeddedWorkbenchx.x430FET_便捷地组织和记录了这些示例。在MSP430主页的代码示例下可找到附加的代码示例。请注意,一些示例程序在LFXT1上要求一个32KHz晶振,并不是所有FET都提供32KHz晶振。2.3使用C-SPYC-SPY内的FET专用菜单说明请见附录B。18开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

使用C-SPY2.3.1断点类型C-SPY断点机制使用少数几个片载调试资源(特别是N断点寄存器,请见表2-1)。当N个或者更少断点被设定时,应用程序必须以器件的全速(或者“实时”)运行。当多于N个断点被设定时并启用虚拟断点时(FETDebugger→Breakpoints→Usevirtualbreakpoints),此应用在主机PC下运行;系统以低很多的速度运行,但是提供不受限的软件断点数量(或者非实时运行)。在非实时模式期间,实际上,PC重复单步执行器件并在每次运行之后询问器件已确定一个断点是否已经被击中。支持(代码)地址和数据(值)断点。数据断点和范围断点均要求两个MSP430硬件断点。表2-1.器件架构、断点和其它仿真特性器件MSP430AFE2xxCC430F512xCC430F513xCC430F514xCC430F612xCC430F613xCC430F614xMSP430BT5190MSP430F11x1MSP430F11x2MSP430F12xMSP430F12x2MSP430F13xMSP430F14xMSP430F15xMSP430F16xMSP430F161xMSP430F20xxMSP430F21x1MSP430F21x2MSP430F22x2MSP430F22x4MSP430F23xMSP430F23x0MSP430F24xMSP430F241xMSP430F2410MSP430F261xMSP430G2xxxMSP430G22xxMSP430F41xMSP430F41x2MSP430F42xMSP430FE42xMSP430FE42x2MSP430FW42x(1)MSP430架构MSP430MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430XMSP430MSP430XMSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP4304线制JTAGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2线制JTAG(1)XXXXXXXX断点(N)22222228222233888范围断点时钟控制X状态程序设跟踪缓冲器置XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX22222323838XXX22222222此2线制JTAG调试接口也被称为Spy-Bi-Wire(SBW)接口。请注意只有USB仿真器(eZ430-xxxx和MSP-FET430UIFUSBJTAG仿真器)和MSP-GANG430s生产编程工具支持这个接口。MSP-FET430PIF并行端口JTAG仿真器并不支持2线制JTAG模式中的通信。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated开发流程19

使用表2-1.器件架构、断点和其它仿真特性(continued)器件MSP430F42x0MSP430FG42x0MSP430F43xMSP430FG43xMSP430F43x1MSP430F44xMSP430F44x1MSP430F461xMSP430FG461xMSP430F461x1MSP430F47xMSP430FG47xMSP430F47x3MSP430F47x4MSP430F471xxMSP430F51x1MSP430F51x2MSP430F521xMSP430F522xMSP430F530xMSP430F5310MSP430F532xMSP430F534xMSP430F54xxMSP430F54xxAMSP430F543xMSP430F550xMSP430F5510MSP430F552xMSP430F563xMSP430FR57xxMSP430F643xMSP430F663xMSP430F67xxMSP430L092MSP430架构MSP430MSP430MSP430MSP430MSP430MSP430MSP430MSP430XMSP430XMSP430XMSP430MSP430MSP430MSP430MSP430XMSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv2MSP430Xv24线制JTAGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2线制JTAG(1)断点(N)22822888882222833883388888338838832XXXXXXXXXXXXXXXXXXXXXXXXXX范围断点时钟控制XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX状态程序设跟踪缓冲器置2.3.2使用断点如果C-SPY在开始时设置的断点数量大于N并且虚拟断点被禁用,一个消息将通知用户只有N个(实时)断点被启用(此时一个或者多个断点将被禁用)。请注意工作平台允许设定任一数量的断点,而不用考虑C-SPY的使用虚拟断点设置。如果虚拟断点被禁用,在C-SPY可设定的最大断点数量为N。如果Project→Options→Debugger→Setup→RunTo被启用,临时复位一个程序要求一个断点(请见FAQ调试中#32)。运行至光标(RuntoCursor)操作临时需要一个断点。因此,如果虚拟断点被禁用,当RuntoCursor被使用时,只有N-1个断点可被激活(请见FAQ调试中#33)。20开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

使用C-SPY如果,在处理一个断点时,一个中断被激活激活,C-SPY在内部处理例程的第一个指令上停止(请见FAQ调试中#26)。2.3.3使用单步执行当调试一个汇编语言文件时,越过子函数、跳出子函数、和下一条基本指令的操作与进入子函数一样;也就是说,当前指令全速执行。当调试一个汇编语言文件时,一个调用(CALL)的单步操作在被调用函数的第一条指令上停止。当调试一个汇编语言文件时,一个(真)以器件全速执行被调用函数的越过CALL指令的指令可通过在CALL放置一个断点并使用GO(到实时模式中的断点)被合成。当调试一个C语言文件时,一个单步(一步)指令操作执行下一条C语言指令。因此,有可能越过一个函数参考。如果可能的话,一个硬件断点被放置在函数参考之后,一个GO在后台被执行。这将使得函数被全速执行。如果无硬件断点可用,此函数在非实时模式下执行。支持进入子函数。支持跳出子函数。在反汇编模式中(View→Disassembly),一个非调用指令的单步操作在完全器件速度上执行此指令。在反汇编模式中(View→Disassembly),如果可能的话,一个调用指令的步操作将一个硬件指令放置在调用指令之后,然后执行GO。被调用的指令在全器件速度上执行。如果在GO之前没有可用的硬件断点,被调用的函数在非实时模式下执行。在任一情况下,执行在调用之后的指令上停止。只有当源指令出现时,才有可能进行单步操作。当运行没有源代码的代码,必须使用断点(也就是说,将断点放置在对没有源代码的函数的调用之后,然后转到实时模式中的断点)。在单步操作期间,如果一个中断被激活,那么当前的指令被完成并且C-SPY在中断处理例程的第一条指令上停止(请见FAQ调试中#26)。2.3.4使用观察窗口C-SPY观察窗口机制允许在调试回话期间允许监控C语言变量。虽然最初设计并非如此,观察窗口机制可被延伸至监控汇编程序变量。假定观察的变量在RAM中定义,例如:RSEGDATA16_Ivarwordds2Mtwobytesperwordvarchards1Monebytepercharacter在1.2.3.C-SPY中:打开观察窗口(View→Watch)。点击Debug→QuickWatch。为了观察varword,在表达式串口中输入:(__data16unsignedint*)varword(__data16unsignedchar*)varchar4.为了观察varchar,在表达式中输入:5.点击添加观察(AddWatch)按钮。6.关闭快速观察(QuickWatch)窗口。7.对于已经在观察窗口中创建的条目,点击符号+来显示被观察变量的内容(或者值)。为了改变所显示变量(缺省、二进制、八进制、十进制、十六进制、字符)的格式,选择类型,点击鼠标右键,然后选择所需格式。通过选择可改变已显示的变量的值,然互输入新的值。在C语言中,可以通过将变量拖拽至观察窗口内进行观察。由于MSP430外设是内存映射的,可将观察变量的概念延伸至观察外设。请注意当外设被C_SPY读写时,有可能会有副作用(请见FAQ调试中#24)。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated开发流程21

使用通过在它们的名称前加上'#'符号,可指定观察的CPU内核寄存器(即,#PC,#SR,#SP,#R5等)。在观察窗口中被观察的变量只有当C-SPY获得对器件的控制权时才可被升级(例如,在一个断点击中、一个单步操作、或者一个停止/退出之后)。虽然寄存器可在观察窗口中被监控,View→Register是首选的方法。22开发流程ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

AppendixAZHCU026X–June2004–RevisedNovember2011常见问题和解答这个附录介绍了程序硬件开发和调试工具方面常见问题的解决方案。TopicPageA.1A.2A.3硬件.................................................................................................................24程序开发(汇编语言、C语言编译器、连接器)........................................................24调试中(C-SPY)..................................................................................................26ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated常见问题和解答23

硬件.1硬件对于硬件相关FAQ的完整列表,请见《MSP430硬件工具用户指南》(SLAU278)。A.2程序开发(汇编语言、C语言编译器、连接器)1.在430/tutor文件夹中提供的文件只与模拟器一起工作。不要用FET使用这些文件(请见FAQ程序开发#11)。2.一个常见的MSP430“错误”就是禁用安全装置机制失败;安全装置默认被启用,如果没有被禁用或者应用程序管理不当的话,安全装置会将器件复位(请见FAQ程序开发#14)。3.当向一个项目中添加源文件时,不要添加已包括在源文件内的文件,这些文件已经被添加到项目中(例如,一个.c或者.s43文件中的.h文件)。这些文件被自动添加到项目文件层次中。4.在汇编程序中,在双引号内包含一个字符串(“字符串”)自自动附加一个零字节到字符串(作为字符串末端的标记)。在一个单引号内包含的字符串(‘字符串’)不是这样。5.当使用编译器或者汇编语言时,如如果源代码行的最后一个字符时反斜杠(),随后的回车/换行被忽略(也就是说,好像当前代码行和下一代码行是一个单一行)。当采用这种方法使用时,反斜杠字符是一个“代码行继续”字符。6.为了与C-SPY一起使用,连接器输出格式必须为"DebuginformationforC-SPY"(.d43)(针对C-SPY的调试信息)。否则C-SPY不启动,并且一个错误消息被输出。C-SPY无法输入一个.TXT文件。7.使用Project→Options→GeneralOptions→Target→Position-IndependentCode可生成浮动地址代码。8.在C语言库内部,GIE(全局中断启用)被禁用,之后(和恢复之前)硬硬件乘法器被使用。为了禁用这一操作,与TI联系以获得针对这些库的源代码。9.可在Workbench中将汇编程序和C程序合成。请见由IAR提供的《C/C++编译器参考指南》的汇编语言接口一章。nch可生成一个采用格式的项目。C-SPY不能输入一个格式的项目。在这个情况下,一个错误消息被输出。art文档中给出的示例程序(即,演示、指导等)是不正确的。此程序只在模拟器中工作。由于安全装置机制被激活,在真实器件上,此程序运行不正确。需要对此程序进行修改以禁用此安全装置机制。使用这个C语言基本指令来禁用安全装置机制:WDTCTL=WDTPW+WDTHOLDM或者此条汇编语言指令:mov.w#WDTPW+WDTHOLD,&WDTCTL12.对于使用一个8位错误的MPY的访问会被标志为一个错误。在.h文件内部,16位寄存器采用的定义方式使得对它们的8位操作被标志为一个错误。这一特性通常是有益的并且能够捕捉寄存器访问违反。然而,在MPY情况下,也可使用8位运算符来访问这个寄存器。如果用8位运算符来访问MPY,通过使用"MPY_"来寻址寄存器可使访问违反检查机制失效。相似地,对8位寄存器的16位操作也被标志。13..h文件内使用的恒定定义(#define)被有效地保留并且包括,例如,C,Z,N,和V。不要使用这些名称创建程序变量。24常见问题和解答ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

程序开发(汇编语言、C语言编译器、连接器)14.与所有C语言应用隐式链接的CSTARTUP不会禁用安全装置定时器。使用WDTCL=WDTPW+WDTHOLDM来明确禁用安全装置。这条指令最好被放置在__low_level_init()函数内,此函数在main()之前执行。如果安全装置定时器未被禁用,并且在CSTARTUP期间安全装置启动并将器件复位,源源屏幕变成空白,由于C-SPY不能定位用于CSTARTUP的源代码。请注意,如果使用大量的初始化全局变量,CSTARTUP的执行会花费大量的时间。int__low_level_init(void){/*Insertyourlow-levelinitializationshere*/WDTCTL=WDTPW+WDTHOLD;//StopWatchdogtimer/*==================================*//*Chooseifsegmentinitialization*//*shouldbedoneornot.*//*Return:0toomitseg_init*//*1torunseg_init*//*==================================*/return(1);}15.编译器优化能够移除未使用的变量和/或者未生效的指令并能够对调试产生影响。优化:在Project→Options→C/C++Compiler→Code→Optimizations内不支持(NONE)。或者,变量可被宣称为易变。教程假定Workbench的一个完全或者Baseline版本。在一个Kickstart系统中,不能将C编译器配置成输出汇编语言助记符指令。17.可在全全新的IAR2.x/3.x系统中使用从一个IAR1.x系统中退出项目;请见针对EW430x.x的IAR文档迁移指南。这个文档位于<安装根目录>18.汇编语言项目必须参考代码段(RSEGCODE)来使用Linker→Processing→FillUnusedCodeMemory机制。无需特别步骤即可使用Linker→Processing→FillUnusedCodeMemorywithCprojects。19.确保为纯C语言和混合C语言/汇编语言项目选择适当的C语言运行时间库(Project→GeneralOptions→LibraryConfiguration→Library)。对于纯汇编语言项目,一定不能连接运行时间库,否则会输出建立故障和一个连接器错误(例如,RESET矢量被分配两次)。20.大量的C语言和C++运行时间库与Workbench一起提供。cl430d:C,64位双精度cl430dp:C,64位双精度,浮动地址cl430f:C,32位双精度cl430fp:C,32位双精度,浮动地址dl430d:C++,64位双精度dl430dp:C++,64位双精度,浮动地址dl430f:C++,32位双精度dl430fp:C++,32位双精度,浮动地址与使用何种库相关的信息请见IARMSP430C/C++编译器参考指南。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated常见问题和解答25

调试中(C-SPY).3调试中(C-SPY)1.使用C-SPY进行调试看上去不会影响一个外部连接的MSP430器件。如果情况是这样的话,检查主调试器菜单条中是否包含一个名为Simulator的菜单项。如果有的话,一个真实的C-SPYMSP430器件内核模拟器会话正在运行,并且没有建立与目标器件的真实通信。解决方案:确保C-SPY驱动器被设定为FET调试器(Project→Options→Debugger→Setup→Driver)。2.C-SPY称其不能与此器件进行通信时。解决这个问题的可能的解决方案包括:•确保选择正确的调节接口;使用Project→Options→FETDebugger→Connection。•在使用一个并行端口MSP-FET430PIF接口被使用时,确保在C-SPY配置中指定正确的并行端口(LPT1,2,3);使用Project→Options→FETDebugger→Connection→ParallelPort→LPT1(缺省)或者LPT2或者LPT3。检查PCBIOS以获得并行端口地址(0x378,0x278,0x3bc),和并行端口配置(ECP,Compatible(兼容),Bidirectional(双向),或者Normal(正常))(请见FAQ调试中#8)。对于使用IBMThinkPad™计算机的用户,即使操作系统报告称并行端口位于LPT1,也请尝试使用端口规范LPT2和LPT3。•确保在目标方硬件上正确配置跳线设置。•确保没有其它的软件应用已经保留/控制COM/并行端口(例如,打印机驱动程序,ZIP驱动的驱动程序等),这种情况发生在使用一个并行端口MSP-FET430PIF接口时。这样一个软件可以防止C-SPY/FET驱动程序访问并行端口并因此防止与器件的通信。•打开器件管理器并确定是否用于FET工具的器件已经被正确安装以及COM/并行端口是否被Windows操作系统(OS)成功识别。•也许有必要重新启动计算机来完成所需端口驱动程序的安装。•确保MSP430器件牢靠地安装在插槽上(这样,插槽的“金手指”可以与器件的引脚完全接合),并且它的引脚1(在顶部表面以一个环形凹口标出)与印刷电路板(PCB)上的标记“1”对齐。CAUTION有可能对器件造成的损坏自始至终只使用一个真空拿取工具处理MSP430;不要使用您的手指,这是因为您能很容易地把引脚弄弯,致使器件报废。此外,时刻遵守并按照正确的静电放电(ESD)预防措施操作。3.C-SPY称器件的JTAG安全保险丝被熔断。使用现有的MSP-FET430PIF和MSP430-FET430UIFJTAG接口工具,当修改由外部供电的目标板时,会有一个缺点。这会导致一个MSP430中的意外保险丝检查并会在JTAG安全保险丝没有熔断的情况下被认为已经熔断。这一情况对于MSP-FET430PIF和MSP-FET430UIF有效,但是主要见于MSP-FET430UIF上。权变措施:•将器件RST/NMI引脚到JTAG头(引脚11),MSP-FET430PIF/MSP-FET430UIF接口工具能够拉RST线路,这也将器件内部保险丝逻辑复位。•不要同时连接JTAG头的VCC工具(引脚2)和VCC目标(引脚4)并且也不要为调试器中的VCC指定一个等于外部电源电压的值。4.C-SPY能够下载数据到RAM,信息,和闪存主存储器。如果试图在器件内存空间之外下载数据的话,会输出一个警告消息。5.C-SPY能够调试采用中断和低功耗模式的应用(请见FAQ调试中#26)。6.器件运行时,C-SPY不能访问器件寄存器和内存。C-SPY显示"-"来标明一个寄存器/内存文件无效。要访问器件寄存器和内存,用户必须将器件停止。然后任一显示的寄存器/内存域被更新。26常见问题和解答ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

调试中(C-SPY)7.当C-SPY被启动时,闪存存储器被擦除并且被打开的文件被编辑,编辑方式与在Project→Options→FETDebugger→DownloadControl中设定的下载选项一致。这个初始的擦除和编程操作可通过选择Project→Options→FETDebugger→DownloadControl→SuppressDownload来禁用。通过使用Emulator→InitNewDevice可以手工初始化闪存编程。8.并行端口指示器(LPTx)具有下列物理地址:LPT1=378h,LPT2=278h,LPT3=3BCh。并行端口(ECP,Compatible,Bidirectional,Normal)的配置并不重要;对于解决C-SPY和器件间的通信问题的附加提示,ECP看上去工作的还不错(请见FAQ调试中#1)。9.当C-SPY被启动并且当器件被编辑时,C-SPY将RST/NMI置为有效来使器件复位。当器件被手工重新编辑(Emulator→InitNewDevice),当JTAG被重新同步时(Emulator→ResynchronizeJTAG),此器件也可由C-SPYRESET(复位)按钮复位。当RST/NMI未被置成有效(低电平),C-SPY设定驱动RST/NMI逻辑电路为高阻抗,并且通过一个PCB上的电阻器将RST/NMI上拉至高电平。当C-SPY被启动时,RST/NMI被置成有效并在加电之后被置成无效。然后RST/NMI被置成有效并在器件初始化完成之后第二次被置成无效。在C-SPY内,Emulator→"Poweron"Reset为目标方循环供电以生成一个加电复位。10.C-SPY能够调试一个器件,此器件的程序能够重新配置RST/NMI引脚的功能至NMI。11.当C-SPY复位器件时,XOUT/TCLK引脚的电平未定义。驱动XOUT/TCLK的逻辑电路在所有其它时间被设定为高阻抗。12.当对器件进行电流测量时,确保JTAG引脚被释放(Emulator→ReleaseJTAGonGo),否则此器件将由JTAG引脚上的信号供电,而测量值也将是错误的(请见FAQ调试中#14)。13.大多数C-SPY的设置(断点等)在在会话间被保留。14.当C-SPY取得器件的控制权时,CPU接通(也就是说,它不处于低功耗模式),这与状态寄存器中的低功耗模式位的设置无关。任一低功耗模式条件被存储于STEP或者GO之前。因此,在C-SPY控制此器件时不要测量器件的功耗。相反的,在JTAG被释放时,运行您使用GO的应用(请见FAQ调试中#12)。15.C-SPY的View→Memory→MemoryFill对话要求十十六进制的值用于起始地址、长度,这个值应该以"0x"作为开始。否则这些值将被认为是十进制。16.C-SPY的内存调试视图(View→Memory)可被用于查看RAM,信息内存,和闪存主存储器。C-SPY的内存工具可被用于修改RAM;而而内存工具不能修改信息内存和闪存主内存。信息内存和闪存主内存只有当一个项目被打开且数据被下载到器件上时才可被编辑,或者当Emulator→InitNewDevice被选择时。17.C-SPY不允许信息内存和闪存主内存的独立段被分开操作;认为信息内存是一个不间断内存,而闪存主存储器为一个第二个不间断内存。18.在有内存的地方,MEMORY窗口正确显示了存储器的内容。然而,在在没有内存的地方,MEMORY窗口不正确显示存储器的内容。存储器应该只用在器件数据表指定的地址范围内。19.调试期间,C-SPY利用系统时钟来控制此器件。因此,当当C-SPY控制此器件时,由主系统时钟(MCLK)计时的器件计数器和其它组件受到影响。采取特别的预防措施来大大降低对于安全装置定时器的影响。CPU内核寄存器被保持。所有其它时钟源(SMCLK,ACLK)和外设在仿真期间继续正常运行。换句话说,闪闪存仿真工具是部分侵入式工具。支持时钟控制的器件(Emulator→Advanced→ClockControl)通过在调试期间选择停止时钟能够进一步减少这些影响(请见FAQ调试中#24)。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated常见问题和解答27

调试中(C-SPY)20.在C-SPY执行器件复位后有一段时间此时间段处于[当C-SPY会话被首先启动,当闪存被重新编辑(通过InitNewDevice),并且当JTAG被重新同步(ResynchronizeJTAG)]以及在C-SPY重新获得对器件的控制之前此此器件正常执行代码。这一运转状态也许有负面影响。一旦C-SPY重新获得对器件的控制,它执行一个器件复位并重获控制权。21.当编辑闪存时,不不要在写入闪存操作之后立即在指令上设置断点。对于这个限制的简单权变措施是在闪存操作之后跟随一个NOP并在NOP之后在指令上设置一个断点(请见FAQ调试中#23)。22.转储内存长度限定符被限制为四个十六进制位(0至FFFF)。这样将可被写入的字节数量限制在0至65535之间。因此,不能在包括0至0xFFFF在内的区间内写入内存,因为这要求限定符的长度为65536(或者10000h)。23.清除和编辑闪存存储器需要多个内部机器周期。当控制闪存的指令为单步执行时,在这些操作完成前对器件的控制权被返还给C-SPY。因此,C-SPY用错误信息升级它的内存窗口。针对这个运转状态的权变措施是在闪存访问指令后跟随一个NOP,然后在检查闪存访问指令的效果之前跨过此NOP(请见FAQ调试中#21)。24.正常程序执行期间,读取时被清除的外设位(也就是说,中断标志)被被清除,当读取的同时被调试时时如此(即,内存转储、外设寄存器)。当使用特定的MSP430器件时(诸如MSP430F15x/16x和MSP430F43x/44x器件),位的运行方式不是如此(也就是说,这些位不由C-SPY读取操作清除)。25.C-SPY不能用于调试在'F12x和'F41x器件的RAM中执行的程序。针对此限制的权变措施就是在闪存中调试程序。26.虽然单步执行具有激活的和已被启用的中断,但是它只有当中断服务例程(ISR)有效时才会出现(也就是说,非ISR代码不会执行,并且单步运行在ISR第一行上停止)。然而,由于器件在处理非ISR(也即是说,主线路)代码之前处理一个有效且被启用的中断,所以这个状态是正确的。对于这个运转状态的权变措施是,虽然在ISR内部,禁用堆栈上的GIE位,这样能够在退出ISR之后将中断禁用。这样使得非ISR代码能够被调试(但是没有中断)。通过设置寄存器窗口中状态寄存器中的GIE位,中断可以在晚些时候重新被启用。在带有时钟控制仿真特性的器件上,有可能在单步操作之间挂起一个时钟并延迟一个中断请求(Emulator→Advanced→ClockControl)。27.观察窗口变量的基数(十进制、十六进制等)属属性在C-SPY回话之间并不保留;此基数返回缺省格式。28.在装有数据传送控制器(DTC)的器件上,数数据传送周期的完成会取代一个低功耗模式指令的单步执行。只有当一个中断被处理之后,此器件才能超过低功耗模式指令继续运行。直到一个中断被处理,在之前单步执行似乎没有效果。对于这个情况的权变措施是在低功耗模式指令之后的指令上设置一个断点,然后执行(GO)至这个断点。29.当DTC对一个单步执行或者一个断点进行响应而停止时,由数据传送控制器(DTC)进行的数据传送也许不能恰好停止。当DTC被启用且一个单步被执行时,一个或者更多字节的数据可以被传送。当DTC被启用且被配置用于两数据块传送模式时,当对一个单步执行或者一个断点进行响应而停止时,DTC也许不能够恰好在数据块边界上停止。30.C-SPY寄存器窗口支持指令周期长度计数器。只有在单步操作的同时周期计数器才被激活。当器件复位或者器件运行(Go)时,此计数复位。可在任一时候对此计数器进行辩解(通常设定为零)。31.有可能使用C-SPY来获得对正在运行且状态未知的器件的控制。简单使用C-SPY来编辑一个虚拟设备,然后通过在选择的Go上的释放JTAG来启动应用。从虚拟设备上移除JTAG连接器并将其连接至未知器件。选择Debug→Break(或者Stop(停止手型图标)来停止未知器件。然后可以询问器件的状态。28常见问题和解答ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

调试中(C-SPY)32.如果Project→Options→Debugger→Setup→RunTo被启用,临时复位一个程序要求一个断点。如果N个或者更多断点被设定,Reset会设定一个虚拟断点并且运行到RunTo函数。因此,也也许在程序复位前需要大量的时间(也就是说,在RunTo函数上停止)。在这段时间内,C-SPY表明程序正在运行并且C-SPY窗口也许为空(或者未被正确升级)。33.运行至光标(RuntoCursor)操作临时需要一个断点。如果N个断点被设定并且虚拟断点被禁用的话,RunToCursor不正确地使用了一个虚拟断点。这将导致非常慢的程序执行。34.模拟器只是一个CPU内核模拟器;外设未被模拟,并且中断为统计事件。35.在没有数据断点功能的器件上,有可能将一个指令断点与一个(仲裁复杂)表达式相关联,当断点被击中时,C-SPY评估此表达式。这一机制可被用于合成一个数据断点。对于这个复杂断点机制的说明请见C-SPY文档。36.C-SPY文档提及的ROM监控器只适用于老款的基于MSP430Exxx(EPROM)的器件;当使用FET和基于闪存的MSP430F器件时,它可可被忽略。37.特定功能寄存器(SFR)和外设寄存器显显示在View→Register中。r()/getchar断点只有当这些函数出现时才被设定(并且此机制被启用)。请注意putchar()/getchar()可被一个库函数间接引用。39.闪存程序/下载进度条并不是逐步更新的。这一运行状态将会出现。只要一个“大块”内存被写入闪存,进度条就会更新。开发工具试图大大减少程序块的数量以大大提升编程效率。因此,例如,有可能将一个60K字节的程序缩减为一个单一块,并且直到整个写入操作完成时,进度条才被更新。40.在将一个完整的EW430项目(包括workspace-,project-,source-和生成的object-文件)被被迁移至一个不同的存储位置时(例如,另外一台PC),在启动C-SPY之前,需要重建目标文件(重建项目)。连接器在目标文件中存储绝对路径名称,最有可能与新的存储位置不匹配。C-SPY可弹出一个消息,称源文件不能被定位或者在调试期间显示其它陌生的结果。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated常见问题和解答29

AppendixBZHCU026X–June2004–RevisedNovember2011FET专用菜单Topic菜单3130FET专用菜单ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

菜单B.1菜单B.1.1Emulator→DeviceInformation打开一个显示有正在使用的目标器件信息的窗口。此外,通过在窗口中点击右键,这个窗口在一个MSP-FET430UIF接口为目标方供电的情况下允许调整目标方电压。可在1.8V至5V的范围内对输出电压进行调整。这个电压在14引脚目标方连接器的引脚2上提供以从MSP-FET430UIF为目标方供电。如果目标方由外部供电,外部电源电压应该连接到目标方连接器的引脚4上,所以MSP-FET430UIF能够相应地设置输出信号的电平。B.1.2Emulator→ReleaseJTAGonGoC-SPY使用器件JTAG信号来调试器件。在某些MSP430器件上,这些JTAG信号与器件端口引脚共享。正常情况下,C-SPY将引脚保持在JTAG模式,这样的话,器件可被调试。在此期间,共享端口的功能性不可用。然而,当选择ReleaseJTAGOnGo时,JTAG驱动器被设定为三态,并且当Go被激活时器件从JTAG控制中被释放(TEST引脚被置为接地(GND))。任何被激活的片载断点被保持,而JTAG端口引脚返回到它们的端口功能性。这时,C-SPY不能访问此器件并且不能确定是否到达一个有效的断点(如果有的话)。C-SPY必须手动控制以停止此器件,此时器件的状态被确定(也就是说,达到一个断点了吗?)。(请见FAQ调试中#12)。B.1.3Emulator→ResynchronizeJTAG重新获得对器件的控制。不能在器件运行时重新同步JTAG。B.1.4Emulator→InitNewDevice按照DownloadOptions(下载选项)中的配置初始化器件。基本上,当前的程序文件被下载至器件内存。然后器件被复位。这个选项可被用于使用来自同一C-SPY回话内部的同一程序编辑多个器件。器件运行时不能选择InitNewDevice(初始化新器件)。B.1.5Emulator→Secure-BlowJTAGFuse在目标方器件上熔断保险丝。保险丝被熔断后,不能与器件继续通信。B.1.6Emulator→BreakpointUsage列出了所有使用的硬件和虚拟中断,以及所有当前被定义的EEM断点。B.1.7Emulator→Advanced→ClockControl当C-SPY控制器件时,禁用特定的系统时钟(在一个STOP或是断点之后。)在一个GO或者一个单步执行之后,所有的系统时钟被启用(STEP/STEPINFO)(请见FAQ调试中#19)。B.1.8Emulator→Advanced→EmulationMode指定将被仿真的器件。在变为仿真模式之后,此器件必须被复位(或者通过InitNewDevice来重新初始化)。ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporatedFET专用菜单31

菜单.1.9Emulator→Advanced→MemoryDump将特定器件内存的内容写入一个指定的文件中。一个传统对话框被显示,使得用户能够指定一个文件名、一个内存起始地址、和长度。然后编址存储器被以文本文件的格式写入一个已命名的文件中。这些选项使得用户能够选择字或者字节文本格式,并且地址信息和寄存器内容也可被附加到文件上。B.1.10Emulator→Advanced→BreakpointCombiner打开BreakpointCombiner(断点组合器)对话框。BreakpointCombiner对话框允许用户指定断点从属关系。当断点在规定的先后顺序内出现时,一个断点会被触发。B.1.11Emulator→StateStorageControl打开StateStorage对话框。StateStorage对话框使用户能够使用状态存储模块。状态存储模块并不出现在所有MSP430派生器件上。有关实施的详细信息,请参阅表2-1。请见MSP430IAR嵌入式工作台IDE用户指南的IARC-SPYFET调试器部分。B.1.12Emulator→StateStorageWindow打开StateStorage(状态存储)窗口,并显示由StateStorage对话配置的已存储的状态信息。请见MSP430IAR嵌入式工作台IDE用户指南的IARC-SPYFET调试器部分。B.1.13Emulator→SequencerControl打开程序控制器对话框。程序控制器对话框允许用户配置程序控制器状态机。请见MSP430IAR嵌入式工作台IDE用户指南的IARC-SPYFET调试器部分。B.1.14Emulator→"Poweron"Reset对器件的循环供电以引起一个复位。B.1.15Emulator→GIEon/off启用或者禁用所有中断。需要在Go之前手工恢复。B.1.16Emulator→LeaveTargetRunning如果C-SPY被关闭,目标方继续运行用户程序。B.1.17Emulator→ForceSingleStepping在Go上,程序单步执行。只用在这个模式下,周期计数器才能正常工作。注:Emulator→Advanced菜单的可用性MSP430器件并不是所有的Emulator→Advanced菜单。这些菜单32FET专用菜单ZHCU026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporated

文档修订历史记录文档修订历史记录版本SLAU138XSLAU138WSLAU138VSLAU138USLAU138TSLAU138S改变/注释德州仪器(TI)提供的相关文档,添加了CC430文档表2-1,添加了CC430F512x,CC430F514x,CC430F614x,MSP430G22xx更新了表2-1。添加了2.2.4节和2.2.5节。更新了表2-1。更新了表2-1更新了表2-1添加了2.2.2节。更新了表2-1中的MSP430x092和MSP430F438/F439。为MSP430G2xxx,MSP430F51x1,MSP430F51x2,MSP430F550x,MSP430F5510,MSP430F551x,MSP430F552x,MSP430F663x添加了仿真特性。在1.1节中更新了支持的操作系统。在表2-1中更新了针对MSP430F461x和MSP430F461x的特性。删除了附录C:80引脚MSP430F44x和MSP430F43x器件仿真添加了与MSP430F5xx和CC430器件相关的信息•删除了与硬件相关的信息。它被移至《MSP430硬件工具用户指南》(SLAU278)。•在表2-1中添加了用于MSP430F55xx和MSP430F54xxA的仿真特性。•更新和扩展了表2-1架构信息。•在部分1.7中添加了MSP-FET430U100A工具包以及MSP-TS430PZ100A目标方插槽模块电路原理图(图表B-19)和PCB(图表B-20)。•在表2-1中为CC430F513x,CC430F612x,CC430F613x,MSP430F41x2,MSP430F47x,MSP430FG479,和MSP430F471xx添加了仿真特性。•更新了MSP-TS430PN80目标方插槽模块电路原理图(图表B-15)中与MSP430F47x和MSP430FG47x有关的信息。•删除了全部与MSP-FET430Pxx0和MSP-FET430X110工具包有关的信息。•添加了MSP-FET430U5x100工具包和MSP-TS430PZ5x100目标方插槽命令电路原理图。•表1-1为添加的调试接口概述。•添加的eZ430-F2013,T2012,和eZ430-RF2500。•更新了部分1-7。•••••添加了MSP-TS430PW28目标方插槽模块,电路原理图(图B-5)和PCB(图B-6)。更新了MSP-FET28U1工具包内容信息(支持DW或者PW封装)(部分1-7)。针对MSP430F21x2的仿真特性被添加至表2-1中。更新了MSP-TS430PW14目标方插槽模块电路原理图(图B-1)。更新了MSP-TS430DA38目标方插槽模块电路原理图(图B-7)。SLAU138RSLAU138QSLAU138PSLAU138OSLAU138NSLAU138MSLAU138LSLAU138KSLAU138JSLAU138ISLAU138HSLAU138G•更新了附录E•在表2-1中添加了用于MSP430F22x2,MSP430F241x,MSP430F261x,MSP430FG42x0和MSP430F43x1的仿真特性。•在附录B中更新了图B-15和图B-16••••将MSP-FET430U40重命名为MSP-FET430U23x0。用重命名的MSP-FET430U23x0图替代了MSP-FET430U40电路原理图和印刷电路板(PCB)图。在部分A.1中添加了FAQ硬件#2。在部分A.3中添加了FAQ调试中#3。SLAU138FNOTE:Pagenumbers026X–June2004–RevisedNovember2011SLAU138—/sc/techlit/SLAU138版权©2004–2011,TexasInstrumentsIncorporatedRevisionHistory33

关于评估板/工具套件的重要通知德州仪器(TI)在提供整组产品时遵循以下条件:TI不会考虑将用于工工程开发、演示或仅作评估用途的评估板/工具套件打造为适合普通消费者使用的最终产品。使用这些产品的人员必须接受电子技术训并严格遵守工程实践标准。因此,所提供的产品并不具有与所需设计、市场营销和/或制造等方面相关的完整保护注意事项,包括采用此类半导体组件或电路板的最终产品中通常包含的产品安全和环境测量信息。该评估板/工具套件并不受与电磁兼容性、限用物质(RoHS)、回收(WEEE)、FCC、CE或UL相关的欧盟指令的约束,因此,它们可能不符合这些指令或其它相关指令的技术要求。如果评估板/工具套件不符合本用户指南中说明的规范,则可在自发货之日起30天内退回该评估板/套件以获取全额退款。前面所述的保证是零售商向购买者提供的保证,它将替代所有其它的明示或默示的保证或承诺,包括对适用于任何特定用途的商用性或适用性保证。用户同意对正确安全地使用这些产品承担全部责任和义务。此外,用户同意TI不对由于处理或使用这些产品造成的任何索赔承担责任。鉴于产品的开放式结构,采取任何适当措施来解决静电放电问题是用户的职责所在。除了上述赔偿范围以外,任何一方均没有义务对另一方造成的任何间接、特殊、偶然或必然损失承担责任。目前,TI就相关产品与众多客户进行接洽,因此我们与用户达成的协议不不具备排他性。对于应应用帮助、客户产品设计、软件性能或专利权侵犯或此处所描述的服务,TI不承担责任。在使用产品之前,请仔细阅读本用户指南,特别是用户指南中的警告和限制通知。此通知包含有关温度和电压的重要安全信息。有关TI的环境和/或安全计划的其它信息,请联系TI应用工程师或访问/esh。TI并未在任何专利权或其它与使用TI产品或服务的机器、流程或组合相关的知识产权下授予许可。FCC警告TI不会考虑将用于工工程开发、演示或仅作评估用途的评估板/工具套件打造为适合普通消费者使用的最终产品。它会生成、使用和发出射频能量,而且尚未依照FCC规则第15部分子部分中为提供合理的射频干扰保护而制定的计算设备限制执行符合性测试。在其它环境中操作该设备可能会对无线电通讯造成干扰,在此情况下,用户必须自行承担为更正此干扰而需采取的任何相关措施的费用。

重要声明德州仪器(TI)及其下属子公司有权在不事先通知的情况下,随时对所提供的产品和服务进行更正、修改、增强、改进或其它更改,并有权随时中止提供任何产品和服务。客户在下订单前应获取最新的相关信息,并验证这些信息是否完整且是最新的。所有产品的销售都遵循在订单确认时所提供的TI销售条款与条件。TI保证其所销售的硬件产品的性能符合TI标准保修的适用规范。仅在TI保证的范围内,且TI认为有必要时才会使用测试或其它质量控制技术。除非政府做出了硬性规定,否则没有必要对每种产品的所有参数进行测试。TI对应用帮助或客户产品设计不承担任何义务。客户应对其使用TI组件的产品和应用自行负责。为尽量减小与客户产品和应用相关的风险,客户应提供充分的设计与操作安全措施。TI不对任何TI专利权、版权、屏蔽作品权或其它与使用了TI产品或服务的组合设备、机器、流程相关的TI知识产权中授予的直接或隐含权限作出任何保证或解释。TI所发布的与第三方产品或服务有关的信息,不能构成从TI获得使用这些产品或服务的许可、授权、或认可。使用此类信息可能需要获得第三方的专利权或其它知识产权方面的许可,或是TI的专利权或其它知识产权方面的许可。对于TI的产品手册或数据表,仅在没有对内容进行任何篡改且带有相关授权、条件、限制和声明的情况下才允许进行复制。在复制信息的过程中对内容的篡改属于非法的、欺诈性商业行为。TI对此类篡改过的文件不承担任何责任。在转售TI产品或服务时,如果存在对产品或服务参数的虚假陈述,则会失去相关TI产品或服务的明示或暗示授权,且这是非法的、欺诈性商业行为。TI对此类虚假陈述不承担任何责任。TI产品未获得用于关键的安全应用中的授权,例如生命支持应用(在该类应用中一旦TI产品故障将预计造成重大的人员伤亡),除非各方官员已经达成了专门管控此类使用的协议。购买者的购买行为即表示,他们具备有关其应用安全以及规章衍生所需的所有专业技术和知识,并且认可和同意,尽管任何应用相关信息或支持仍可能由TI提供,但他们将独力负责满足在关键安全应用中使用其产品及TI产品所需的所有法律、法规和安全相关要求。此外,购买者必须全额赔偿因在此类关键安全应用中使用TI产品而对TI及其代表造成的损失。TI产品并非设计或专门用于军事/航空应用,以及环境方面的产品,除非TI特别注明该产品属于“军用”或“增强型塑料”产品。只有TI指定的军用产品才满足军用规格。购买者认可并同意,对TI未指定军用的产品进行军事方面的应用,风险由购买者单独承担,并且独力负责在此类相关使用中满足所有法律和法规要求。TI产品并非设计或专门用于汽车应用以及环境方面的产品,除非TI特别注明该产品符合ISO/TS16949要求。购买者认可并同意,如果他们在汽车应用中使用任何未被指定的产品,TI对未能满足应用所需要求不承担任何责任。可访问以下URL地址以获取有关其它TI产品和应用解决方案的信息:产品数字音频放大器和线性器件数据转换器DLP®产品DSP-数字信号处理器时钟和计时器接口逻辑电源管理微控制器(MCU)RFID系统OMAP机动性处理器无线连通性////////////wirelessconnectivity德州仪器在线技术支持社区通信与电信计算机及周边消费电子能源工业应用医疗电子安防应用汽车电子视频和影像应用/////////video邮寄地址:上海市浦东新区世纪大道1568号,中建大厦32楼邮政编码:200122Copyright©2012德州仪器半导体技术(上海)有限公司

本文标签: 器件使用断点产品文件