您好,欢迎访问三七文档
ARM开发和调试工具的使用(IAREWARM和H-JTAG/J-LINK)上海工程技术大学电子电气工程学院1目录1创建一个IAR工程…………………………………………………32编译和链接一个IAR工程…………………………………………52.1GeneralOptions设置……………………………………………52.2C/C++Compiler设置……………………………………………72.3Linker设置………………………………………………………82.4OutputConverter设置…………………………………………82.5开始编译和链接并生成可下载的输出文件……………………103使用C-SPY进行调试和分析………………………………………113.1软件仿真调试(中断模拟)……………………………………113.2使用H-JTAG仿真调试(RAM∕ROM)……………………………133.3使用J-LINK仿真调试(RAM∕ROM)……………………………183.4应用程序分析……………………………………………………194将可执行二进制文件下载到片内FLASH…………………………224.1使用H-JTAG下载(H-Flasher)………………………………224.2使用J-LINK下载(J-LinkARM)………………………………234.3使用CPU自带的ISP功能下载…………………………………244.4使用CPU自带的IAP功能下载…………………………………2425附录一:IAR中的中断处理………………………………………255.1向量IRQ中断(ARM7)…………………………………………265.2非向量IRQ中断(ARM7)………………………………………275.3FIQ中断(ARM7)………………………………………………276附录二:IAR中C与汇编的混合编程……………………………286.1C语言本征函数…………………………………………………286.2汇编语言程序……………………………………………………286.3内联汇编…………………………………………………………297附录三:H-JTAG和J-LINK的比较………………………………308参考文献……………………………………………………………3131创建一个IAR工程1.1打开IAR开发环境“开始”→“程序”→“IARSystems”→“IAREmbeddedWorkbenchforARM5.50Evaluation”→“IAREmbeddedWorkbench”1.2新建一个工作区这步可选,但最好新建一个专用的目录,用来存放自己工程文件,“File”→“New”→“Workspace”:.eww1.3新建一个IAR空工程“Project”→“CreateNewProject”:.ewp41.4新建文件并保存“File”→“New”→“File”“File”→“Save”1.5为IAR工程添加已有文件“Project”→“AddFiles”52编译和链接一个IAR工程在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框:2.1GeneralOption选中该对话框左侧Category列表框中“GeneralOption”,并对右侧对应的选项卡中的内容作以下设置:选项卡设置TargetCore:ARM7TDMI-S/Cortex-M3Device:NXPLPC21xx/STSTM32F10xxBOutputOutputFile:ExecutableOutputDirectories:…LibraryConfigurationLibrarylow-levelinterfaceimplementation:Semihosted61、目标板上MCU是LPC2103(ARM7TDMI):2、目标板上MCU是STM32(Cortex-M3):72.2C/C++Compiler1、目标板上MCU是LPC2103(ARM7TDMI):选中该对话框左侧Category列表框中“C/C++Compiler”,并对右侧对应的选项卡中的内容作以下设置:选项卡设置CodeProcessorMode:ARMOptimizationLevel:None(BestDebugSupport)∕LowOutputGenerateDebugInformation2、目标板上MCU是STM32(Cortex-M3):选中该对话框左侧Category列表框中“C/C++Compiler”,并对右侧对应的选项卡中的内容作以下设置:选项卡设置CodeProcessorMode:/PreprocessorAdditionalIncludeDirectories:--$PROJ_DIR$\..\--$PROJ_DIR$\..\..\..\Libraries\CMSIS\CM3\CoreSupport--$PROJ_DIR$\..\..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x--$PROJ_DIR$\..\..\..\Libraries\STM32F10x_StdPeriph_Driver\incDefinedSymbol:--USE_STDPERIPH_DRIVER--STM32F10X_MD_VL--USE_STM32100B_EVALOptimizationLevel:None(BestDebugSupport)∕LowOutputGenerateDebugInformation32-bitARM指令集16-bitThumb指令集Thumb-2指令集82.3OutputConverter设置选中该对话框左侧Category列表框中“OutputConverter”,并对右侧对应的选项卡中的内容作以下设置:选项卡设置OutputGenerateAdditionalOutput(OverrideDefault)OutputFormat:IntelExtended2.4Linker设置1、IAREWARM4且目标板上MCU是LPC2103(ARM7TDMI):在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Linker”,对右侧对应的选项卡中的内容作以下设置:选项卡设置ConfigLinkerConfigurationFile:(OverrideDefault)$PROJ_DIR$\LPC2103_ROM.xclListGenerateLinkerMapFile92、IAREWARM5且目标板上MCU是STM32(Cortex-M3):在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Linker”,对右侧对应的选项卡中的内容作以下设置:选项卡设置ConfigLinkerConfigurationFile:(OverrideDefault)$PROJ_DIR$\stm32f10x_flash.icfListGenerateLinkerMapFile点击“LinkerConfigurationFile”下“Edit…”按键,打开“LinkerConfigurationFileEditor”对话框,选择不同的选项卡,可分别查看和设置中断向量表(VectorTable)、存储器地址分配(RAM和ROM)以及堆和栈的大小(HeapSize和StackSize),具体设置如下图所示。101)中断向量表(VectorTable):2)存储器地址分配(RAM和ROM):3)堆和栈的大小(HeapSize和StackSize):2.5开始编译和连接,并生成可下载的输出文件“Project”→“Make”113使用C-SPY进行调试和分析3.1软件仿真调试3.1.1软件仿真调试设置在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Debugger”,对右侧对应的选项卡中的内容作以下设置:3.1.2进入调试模式设置完毕,点击菜单“Project”→“DownloadandDebug”,进入调试模式。3.1.3中断仿真使用C-SPY模拟器可以在没有实际硬件的条件下进行中断仿真,以检测应用程序的逻辑性是否正确。12使用中断仿真系统(以定时器中断为例)一般按以下步骤进行:1)编写中断仿真源程序(包括定时器初始化函数,定时器中断服务函数和定时器中断服务安装函数等),详见IARHELP。2)选择目标CPU并编译在“Project”→“Options…”对话框中,选中该对话框左侧的Category列表框中“GeneralOption”,并在右侧“Target”选项卡的“Device”选项中选择目标CPU。然后,编译工程。3)选择软件仿真方式并进入调试模式在“Project”→“Options…”对话框中,选中该对话框左侧的Category列表框中“Debugger”,并在其右侧“Setup”选项卡中的“Driver”选项选择Simulator。然后,单击按钮进入调试模式。4)设置中断单击下拉菜单“Simulator”→“InterruptSetup”选项,弹出中断仿真配置对话框,并作如下配置:13——FirstActivation:首次触发中断所需循环计数器周期数——RepeatInterval:中断重复间隔所需循环计数器周期数——Variance:发生时间的变化率,以重复间隔的百分比表示——HoldTime:中断等待被处理的保持时间,以周期为单位——Probability:中断发生的概率5)打开中断日志窗口和强制中断窗口观察中断单击下拉菜单“Simulator”→“InterruptLog”选项,可打开中断日志窗口查看中断产生情况。单击下拉菜单“Simulator”→“ForcedInterrupt”选项,可打开强制中断窗口,选中一个中断如IRQ,单击该窗口的“Trigger”按钮,可以立即强制执行该中断,这种方法对想检查中断逻辑和中断程序非常有用。中断仿真系统默认为打开状态,如果不需要使用中断仿真系统,可以将其关闭以提高仿真速度。3.2H-JTAG仿真调试3.2.1H-JTAG仿真调试设置在工作区窗口选中项目文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Debugger”,对右侧对应的选项卡中的内容作以下设置:1415使用硬件仿真器(如H-JTAG或J-LINK)调试程序,根据将程序运行的空间不同,可分为在RAM中调试和在ROM中调试两种:★在RAM中调试:在RAM中调试,是指被调试程序在片内RAM中运行在工作区窗口选中项目文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Linker”,对右侧对应的选项卡中的内容作以下设置:选项卡设置ConfigLinkerConfigurationFile:(OverrideDefault)$$PROJ_DIR$\LPC2131_RAM.icf★在ROM中调试:在ROM中调试,是指被调试程序在片内ROM中运行在工作区窗口选中项目文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Linker”,对右侧对应的选项卡中的内容作以下设置:选项卡设置ConfigLinkerConfigurationFile:(OverrideDefault)$PROJ_DIR$\LPC2131_FLASH.icf在工作区窗口选中项目文件夹test-Debug,然后“Project”→“Options
本文标题:IAR使用手册
链接地址:https://www.777doc.com/doc-5478699 .html