IAR使用手册汇编.docx
《IAR使用手册汇编.docx》由会员分享,可在线阅读,更多相关《IAR使用手册汇编.docx(29页珍藏版)》请在冰豆网上搜索。
IAR使用手册汇编
ARM开发和调试工具的使用
(IAREWARM和H-JTAG/J-LINK)
上海工程技术大学
电子电气工程学院
目录
1创建一个IAR工程…………………………………………………3
2编译和链接一个IAR工程…………………………………………5
2.1GeneralOptions设置……………………………………………5
2.2C/C++Compiler设置……………………………………………7
2.3Linker设置………………………………………………………8
2.4OutputConverter设置…………………………………………8
2.5开始编译和链接并生成可下载的输出文件……………………10
3使用C-SPY进行调试和分析………………………………………11
3.1软件仿真调试(中断模拟)……………………………………11
3.2使用H-JTAG仿真调试(RAM∕ROM)……………………………13
3.3使用J-LINK仿真调试(RAM∕ROM)……………………………18
3.4应用程序分析……………………………………………………19
4将可执行二进制文件下载到片内FLASH…………………………22
4.1使用H-JTAG下载(H-Flasher)………………………………22
4.2使用J-LINK下载(J-LinkARM)………………………………23
4.3使用CPU自带的ISP功能下载…………………………………24
4.4使用CPU自带的IAP功能下载…………………………………24
5附录一:
IAR中的中断处理………………………………………25
5.1向量IRQ中断(ARM7)…………………………………………26
5.2非向量IRQ中断(ARM7)………………………………………27
5.3FIQ中断(ARM7)………………………………………………27
6附录二:
IAR中C与汇编的混合编程……………………………28
6.1C语言本征函数…………………………………………………28
6.2汇编语言程序……………………………………………………28
6.3内联汇编…………………………………………………………29
7附录三:
H-JTAG和J-LINK的比较………………………………30
8参考文献……………………………………………………………31
1创建一个IAR工程
1.1打开IAR开发环境
“开始”→“程序”→“IARSystems”→“IAREmbeddedWorkbenchforARM5.50Evaluation”→“IAREmbeddedWorkbench”
1.2新建一个工作区
这步可选,但最好新建一个专用的目录,用来存放自己工程文件,“File”→“New”→“Workspace”:
.eww
1.3新建一个IAR空工程
“Project”→“CreateNewProject”:
.ewp
1.4新建文件并保存
“File”→“New”→“File”
“File”→“Save”
1.5为IAR工程添加已有文件
“Project”→“AddFiles”
2编译和链接一个IAR工程
在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框:
2.1GeneralOption
选中该对话框左侧Category列表框中“GeneralOption”,并对右侧对应的选项卡中的内容作以下设置:
选项卡
设置
Target
Core:
ARM7TDMI-S/Cortex-M3
Device:
NXPLPC21xx/STSTM32F10xxB
Output
OutputFile:
Executable
OutputDirectories:
…
LibraryConfiguration
Librarylow-levelinterfaceimplementation:
Semihosted
1、目标板上MCU是LPC2103(ARM7TDMI):
2、目标板上MCU是STM32(Cortex-M3):
2.2C/C++Compiler
1、目标板上MCU是LPC2103(ARM7TDMI):
选中该对话框左侧Category列表框中“C/C++Compiler”,并对右侧对应的选项卡中的内容作以下设置:
选项卡
设置
Code
ProcessorMode:
ARM
Optimization
Level:
None(BestDebugSupport)∕Low
Output
GenerateDebugInformation
2、目标板上MCU是STM32(Cortex-M3):
选中该对话框左侧Category列表框中“C/C++Compiler”,并对右侧对应的选项卡中的内容作以下设置:
选项卡
设置
Code
ProcessorMode:
/
Preprocessor
AdditionalIncludeDirectories:
--$PROJ_DIR$\..\
--$PROJ_DIR$\..\..\..\Libraries\CMSIS\CM3\CoreSupport
--$PROJ_DIR$\..\..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
--$PROJ_DIR$\..\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc
DefinedSymbol:
--USE_STDPERIPH_DRIVER
--STM32F10X_MD_VL
--USE_STM32100B_EVAL
Optimization
Level:
None(BestDebugSupport)∕Low
Output
GenerateDebugInformation
2.3OutputConverter设置
选中该对话框左侧Category列表框中“OutputConverter”,并对右侧对应的选项卡中的内容作以下设置:
选项卡
设置
Output
GenerateAdditionalOutput(OverrideDefault)
OutputFormat:
IntelExtended
2.4Linker设置
1、IAREWARM4且目标板上MCU是LPC2103(ARM7TDMI):
在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Linker”,对右侧对应的选项卡中的内容作以下设置:
选项卡
设置
Config
LinkerConfigurationFile:
(OverrideDefault)
$PROJ_DIR$\LPC2103_ROM.xcl
List
GenerateLinkerMapFile
2、IAREWARM5且目标板上MCU是STM32(Cortex-M3):
在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Linker”,对右侧对应的选项卡中的内容作以下设置:
选项卡
设置
Config
LinkerConfigurationFile:
(OverrideDefault)
$PROJ_DIR$\stm32f10x_flash.icf
List
GenerateLinkerMapFile
点击“LinkerConfigurationFile”下“Edit…”按键,打开“LinkerConfigurationFileEditor”对话框,选择不同的选项卡,可分别查看和设置中断向量表(VectorTable)、存储器地址分配(RAM和ROM)以及堆和栈的大小(HeapSize和StackSize),具体设置如下图所示。
1)中断向量表(VectorTable):
2)存储器地址分配(RAM和ROM):
3)堆和栈的大小(HeapSize和StackSize):
2.5开始编译和连接,并生成可下载的输出文件
“Project”→“Make”
3使用C-SPY进行调试和分析
3.1软件仿真调试
3.1.1软件仿真调试设置
在工作区窗口选中工程文件夹test-Debug,然后“Project”→“Options…”,弹出对话框,并选中该对话框左侧Category列表框中“Debugger”,对右侧对应的选项卡中的内容作以下设置:
3.1.2进入调试模式
设置完毕,点击菜单“Project”→“DownloadandDebug”,进入调试模式。
3.1.3中断仿真
使用C-SPY模拟器可以在没有实际硬件的条件下进行中断仿真,以检测应用程序的逻辑性是否正确。
使用中断仿真系统(以定时器中断为例)一般按以下步骤进行:
1)编写中断仿真源程序(包括定时器初始化函数,定时器中断服务函数和定时器中断服务安装函数等),详见IARHELP。
2)选择目标CPU并编译
在“Project”→“Options…”对话框中,选中该对话框左侧的Category列表框中“GeneralOption”,并在右侧“Target”选项卡的“Device”选项中选择目标CPU。
然后,编译工程。
3)选择软件仿真方式并进入调试模式
在“Project”→“Options…”对话框中,选中该对话框左侧的Category列表框中“Debugger”,并在其右侧“Setup”选项卡中的“Driver”选项选择Simulator。
然后,单击按钮进入调试模式。
4)设置中断
单击下拉菜单“Simulator”→“InterruptSetup”选项,弹出中断仿真配置对话框,并作如下配置:
——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”,对右侧对应的选项卡中的内容作以下设置:
使用硬件仿真器(如H-JTAG或J-LINK