IAR_-arm_入门教程精品文档10页
- 格式:doc
- 大小:267.50 KB
- 文档页数:10
IAR 使用指南周立功单片机有限公司目录第1章 EWARM 集成开发环境 (1)简介 (1)1.1 IAREWARMLINK调试器介绍 (1)1.2 LMEWARM的安装 (1)1.3 IAR第2章安装驱动库 (6)2.1 下载最新库文件 (6)2.2 拷贝连接器命令文件 (6)2.3 拷贝驱动库头文件 (7)2.4 拷贝底层驱动函数库 (8)第3章在EWARM中新建一个新项目 (10)3.1 建立一个项目文件目录 (10)3.2 新建工作区 (10)3.3 生成新项目 (11)3.4 添加/新建文件 (13)3.5 项目选项设置 (15)3.6 通用选项设置 (16)3.7 C/C++编译器选项设置 (16)第4章编译和运行应用程序 (23)4.1 编译连接处理 (23)4.2 查看MAP文件 (23)4.3 加载应用程序 (23)第5章生成hex文件 (25)第1章 EWARM 集成开发环境1.1IAR EWARM 简介IAR Embedded Workbench for ARM(下面简称IAR EWARM)是一个针对ARM 处理器的集成开发环境,它包含项目管理器、编辑器、C/C++编译器和ARM 汇编器、连接器XLINK 和支持RTOS 的调试工具C-SPY。
在EWARM 环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。
比较其他的ARM开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。
目前IAR EWARM支持ARM Cortex-M3内核的最新版本是 4.42a,该版本支持Luminary 全系列的MCU。
为了方便用户学习评估,IAR 提供一个限制32K代码的免费试用版本。
用户可以到IAR 公司的网站/ewarm下载。
1.2LM LINK调试器介绍LM LINK是由广州致远电子有限公司开发的低成本高性能USB JTAG调试器,它专门用于对Luminary系列单片机程序的调试与下载。
iar 使用方法一、iar使用基本流程1. 创建项目:打开iar开发环境,选择新建项目,设置项目名称、目标芯片以及其他相关配置。
2. 导入源代码:将需要开发的源代码导入项目中,可以选择直接复制粘贴或者导入已有的源代码文件。
3. 配置编译选项:设置编译选项,包括编译器版本、优化级别、调试信息等。
4. 进行编译:点击编译按钮,iar将自动编译源代码并生成可执行文件。
5. 调试目标板:将目标板与开发环境连接,选择调试功能,iar将自动下载可执行文件到目标板上,并进入调试状态。
6. 调试功能:iar提供了丰富的调试功能,包括断点、单步执行、变量监视、寄存器查看等,可根据需要进行调试操作。
7. 优化代码:iar还提供了代码优化功能,可根据需要进行代码优化,提高程序效率。
8. 生成可执行文件:调试完成后,可以选择生成可执行文件,以便烧录到目标板上运行。
二、iar常用功能和技巧1. 代码编辑器:iar的代码编辑器功能强大,支持代码高亮、代码折叠、自动补全等功能,可以大大提高编码效率。
2. 快捷键:iar提供了丰富的快捷键,例如F7可以进行编译,F8可以进行调试等,熟练使用快捷键可以提高开发效率。
3. 代码模板:iar内置了很多代码模板,可以通过简单的操作快速生成常用的代码结构,例如中断服务函数、初始化函数等。
4. 版本控制:iar可以与常用的版本控制工具集成,如Git,可以方便地进行代码版本管理。
5. 调试技巧:iar提供了丰富的调试功能,熟练掌握调试技巧可以快速定位问题,例如使用断点进行程序暂停、使用单步执行进行逐行调试等。
6. 静态分析工具:iar还提供了静态分析工具,可以帮助开发者检查代码中的潜在问题,例如未使用的变量、未初始化的变量等。
三、小结本文介绍了iar使用的基本流程、常用功能和技巧,希望读者通过学习,能够更好地掌握iar开发环境,提高开发效率和代码质量。
当然,iar作为一款强大的开发工具,还有很多其他功能和技巧等待读者去发掘和掌握,希望读者能够不断学习和探索,不断提升自己的开发能力。
首页ARM技术开源项目硬件基础Linux基础嵌入式生涯大杂烩淘宝商城登录/注册●个人设置●我的话题●我订阅的话题●论坛规则●酷帖●搜索●Arm论坛 » ARM技术交流区»ARM技术论坛跳转至:ARM技术论坛硬件基础入门DIY产品专区Linux基础入门Linux内核以及驱动技术FPGA基础入门FPGA案例专区嵌入式广告发布区原理图、PCB、仿真工具嵌入式职业生涯论坛建设区关联帖子系列1:1).基于STM32的ARM嵌入式开源项目总目录2).基于STM32的ARM嵌入式开源项目将正式启动( QQ群:一二三四五六七群已满,请加八群90942613)3).嵌入式产品开源思路(开始讨论这个主题)4).如何协同共同学习这个过程、参与者角色5).带领项目前进的决策方式(项目跟踪工具进度任务分派项目周报)6).财务以及元器件采购的学习和了解,包括焊接技术,PCB费用等全盘了解,达到完全掌握一个完整项目的所有非技术细节7).基于STM32的ARM嵌入式开源项目参与报名贴(ARM V7)8).如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)9).基于STM32的ARM嵌入式开源项目开发计划(重新使用ARM V7 Cortex-M3完整实现)10).基于STM32的ARM嵌入式开源项目2009年7月21日星期二晚上20:00群内开会讨论纪要总结11).基于STM32的ARM嵌入式开源项目技术规格需求说明书(2009年7月28日)12).基于STM32的ARM嵌入式开源项目初始设计方案说明书(2009年8月6日)公布啦!!!!13).基于STM32的ARM嵌入式开源项目分工协作方案出炉了!(2009年8月21日星期五晚上20:00群内开会讨论纪要总结)14).基于STM32的ARM嵌入式开源项目---协作分工正式开始啦(2009年8月25日)赶快来找自己的团队吧15).开源项目1群和2群:第1个星期的讨论总结如下:主题为分工大会(2009年8月31日21:00)16).开源项目1群和2群:UCOSII学习方法和情况讨论(2009年9月4日)17).开源项目1群和2群:第2个星期的讨论总结如下(2009年9月7日21:00)18).开源项目1群和2群:第3个星期的讨论总结如下(2009年9月21日21:00)19).参考资料下载20).公告:还未收到订购的开源MP3产品的朋友请看过来(以及运费减免)21).购买产品:订购开始了!关于基于STM32的ARM嵌入式开源项目产品的订购(全套产品散件260 成品320)22).开源项目会议:STM32深入学习周二(2009年11月10日20:00)开会总结,硬件专业学习群号:9548703623).STM32产品基础教程(1) - 开发环境的搭建,库安装24).STM32产品基础教程(3) -按键(每按一次键,LED灯就会被点亮的程序和原理)25).STM32产品基础教程(4) - SysTick 定时器(内核中断原理与实践篇)抱歉本贴的回复数太多,为了减轻网络流量,只显示帖子正文的前后各10个回复。
iar使用教程
当使用意图识别(IA)API时,可以按照以下步骤进行操作:
1. 获取API密钥:首先,需要获得使用IA API的有效API密钥。
可以在IA API的官方网站上注册并获取API密钥。
2. 设置请求:使用IA API时,可以发送HTTP POST请求来识别用户意图。
在请求的主体中,可以包含用户的输入文本或语音。
3. 发送请求:将设置好的请求发送到IA API的终端节点。
确保在请求中包含正确的API密钥,以便进行身份验证。
4. 解析响应:一旦完成请求,会从IA API接收到一个响应。
根据响应的格式,可以对其进行解析以获取所需的信息。
常见的响应格式有JSON和XML。
5. 处理结果:根据API的响应,可以在应用程序中进行适当的处理。
根据IA API的返回结果,可以根据意图来采取合适的行动或生成相应的回复。
在实际使用中,需要根据具体的编程语言和平台来实现以上步骤。
根据IA API提供的官方文档,可以找到相应语言的示例代码和详细教程来帮助使用IA API。
目录第1章 ARM微处理器概述 51.1 ARM-Advanced RISC Machines 51.2 ARM微处理器的应用领域及特点 51.2.1 ARM微处理器的应用领域 51.2.2 ARM微处理器的特点 61.3 ARM微处理器系列 61.3.1 ARM7微处理器系列 61.3.2 ARM9微处理器系列 71.3.3 ARM9E微处理器系列 71.3.4 ARM10E微处理器系列 71.3.5 SecurCore微处理器系列 81.3.6 StrongARM微处理器系列 81.3.7 Xscale处理器 81.4 ARM微处理器结构 81.4.1 RISC体系结构 81.4.2 ARM微处理器的寄存器结构 91.4.3 ARM微处理器的指令结构 91.5 ARM微处理器的应用选型 101.6 本章小节10第2章 ARM微处理器的编程模型 112.1 ARM微处理器的工作状态 112.2 ARM体系结构的存储器格式 112.3 指令长度及数据类型 122.4 处理器模式 122.5 寄存器组织 132.5.1 ARM状态下的寄存器组织 132.5.2 Thumb状态下的寄存器组织 152.5.3 程序状态寄存器 162.6 异常(Exceptions) 182.6.1 ARM体系结构所支持的异常类型 182.6.2 对异常的响应 182.6.3 从异常返回 192.6.4 各类异常的具体描述 192.6.5 异常进入/退出小节 202.6.6 异常向量(Exception Vectors) 202.6.7 异常优先级(Exception Priorities) 212.6.8 应用程序中的异常处理 212.7 本章小节21第3章 ARM微处理器的指令系统 223.1 ARM微处理器的指令集概述 223.1.1 ARM微处理器的指令的分类与格式 223.1.2 指令的条件域 233.2 ARM指令的寻址方式 233.2.1 立即寻址 243.2.2 寄存器寻址 243.2.2 寄存器间接寻址 243.2.3 基址变址寻址 243.2.4 多寄存器寻址 253.2.5 相对寻址 253.2.6 堆栈寻址 253.3 ARM指令集 253.3.1 跳转指令 253.3.2 数据处理指令 263.3.3 乘法指令与乘加指令 303.3.4 程序状态寄存器访问指令 323.3.5 加载/存储指令 323.3.6 批量数据加载/存储指令 343.3.7 数据交换指令 353.3.8 移位指令(操作) 353.3.9 协处理器指令 363.3.10 异常产生指令 383.4 Thumb指令及应用 383.5 本章小节39第4章 ARM程序设计基础 404.1 ARM汇编器所支持的伪指令 404.1.1 符号定义(Symbol Definition)伪指令 404.1.2 数据定义(Data Definition)伪指令 414.1.3 汇编控制(Assembly Control)伪指令 434.1.4 其他常用的伪指令 454.2 汇编语言的语句格式 484.2.1 在汇编语言程序中常用的符号 494.2.2 汇编语言程序中的表达式和运算符 494.3 汇编语言的程序结构 524.3.1 汇编语言的程序结构 524.3.2 汇编语言的子程序调用 524.3.3 汇编语言程序示例 534.3.4 汇编语言与C/C++的混合编程 554.4 本章小节56第5章应用系统设计与调试 575.1 系统设计概述 575.2 S3C4510B概述 585.2.1 S3C4510B及片内外围简介 585.2.2 S3C4510B的引脚分布及信号描述 615.2.3 CPU内核概述及特殊功能寄存器(Special Registers) 675.2.4 S3C4510B的系统管理器(System Manager) 725.3 系统的硬件选型与单元电路设计 825.3.1 S3C4510B芯片及引脚分析 825.3.2 电源电路 835.3.3 晶振电路与复位电路 835.3.4 Flash存储器接口电路 855.3.5 SDRAM接口电路 895.3.6 串行接口电路 935.3.7 IIC接口电路 945.3.8 JTAG接口电路 955.3.9 10M/100M以太网接口电路 965.3.10 通用I/O接口电路 1005.4 硬件系统的调试 1015.4.1 电源、晶振及复位电路 1015.4.2 S3C4510B及JTAG接口电路 1025.4.3 SDRAM接口电路的调试 1035.4.4 Flash接口电路的调试 1055.4.5 10M/100M以太网接口电路 1055.5 印刷电路板的设计注意事项 1055.5.1 电源质量与分配 1055.5.2 同类型信号线的分布 1065.6 本章小节 106 第6章部件工作原理与编程示例 1076.1 嵌入式系统的程序设计方法 1076.2 部件工作原理与编程示例 1086.2.1 通用I/O口工作原理与编程示例 1086.2.2 串行通讯工作原理与编程示例 1116.2.3 中断控制器工作原理与编程示例 1206.2.4 定时器工作原理与编程示例 1236.2.5 GDMA工作原理与编程示例 1276.2.6 IIC总线控制器工作原理 1336.2.7 以太网控制器工作原理 138主要特性139MAC功能模块 140 带缓冲DMA接口(Buffered DMA Interface) 144以太网控制器特殊功能寄存器(Ethernet Controller Special Registers) 147MAC寄存器(Media Access Control(MAC)Register) 154以太网控制器的操作(Ethernet Controller Operation) 160发送一个帧(Transmitting a Frame) 162接收一个帧(Receiving a Frame) 1626.2.8 Flash存储器工作原理与编程示例 1626.3 BootLoader简介 1676.4 本章小节 167 第7章嵌入式uClinux及其应用开发 1687.1 嵌入式uClinux系统概况 1687.2 开发工具GNU的使用 1707.2.1 GCC编译器 1707.2.2 GNU Make 1727.2.3 使用GDB调试程序 1777.3 建立uClinux开发环境 1807.3.1 建立交叉编译器 1817.3.2 uClinux针对硬件的改动 1847.3.3 编译uClinux内核 1857.3.4 内核的加载运行 1877.4 在uClinux下开发应用程序 1887.4.1 串行通信 1907.4.2 socket编程 1957.4 .3 添加用户应用程序到uClinux 2027.4.4 通过网络添加应用程序到目标系统 2057.5 本章小结 207 第8章ARM ADS集成开发环境的使用 2098.1 ADS集成开发环境组成介绍 2098.1.1 命令行开发工具 2098.1.2 ARM运行时库 2188.1.3 GUI开发环境(Code Warrior和AXD) 2198.1.4 实用程序 2218.1.5 支持的软件 2218.2 使用ADS创建工程 2228.2.1 建立一个工程 2228.2.2 编译和链接工程 2258.2.3 使用命令行工具编译应用程序 2298.3 用AXD进行代码调试 2308.4 本章小结 233第1章 ARM微处理器概述本章简介ARM微处理器的一些基本概念、应用领域及特点,引导读者进入ARM技术的殿堂。
IAR安装与使用教程IAR是一款集成开发环境(Integrated Development Environment,IDE),主要用于嵌入式系统的软件开发。
本文将向您介绍IAR的安装和使用教程。
3.安装完成后,启动IAR。
第二步:创建新项目1. 点击菜单栏的“File” -> “New” -> “Project”。
2.在弹出的对话框中选择项目类型和文件保存位置。
可以选择C/C++项目,也可以选择其他类型的项目。
3. 输入项目名称,点击“Next”。
4.选择目标设备或芯片型号,并确定调试器类型。
5. 在“Add files to project”对话框中加入需要的源文件和头文件。
6. 点击“Finish”完成项目创建。
第三步:配置编译器和调试器1. 点击菜单栏的“Project” -> “Options”打开项目选项。
3. 在左侧选择“Debugger”进行调试器设置。
可以选择调试器类型、连接方式、端口等。
4.点击“OK”保存设置。
第四步:编写和调试代码1.在项目文件中编写源代码。
2. 点击菜单栏的“Project” -> “Make All”编译项目。
3. 点击菜单栏的“Project” -> “Download and Debug”烧写代码到目标设备并开始调试。
4.在调试窗口中可以执行单步调试、设置断点、查看变量值等。
5. 调试完成后,点击菜单栏的“Project” -> “Disconnect”断开连接。
第五步:项目管理和工程实践1. 点击菜单栏的“Project” -> “Add Existing Files”添加已有的源文件和头文件。
2. 点击菜单栏的“Project” -> “Options” -> “Gener al Options”进行项目配置,如指定输出文件路径、目标设备等。
3. 点击菜单栏的“Project” -> “Options” -> “Version Control”进行版本控制设置,如Git、SVN等。
第 1 页 IAR 使用说明 关于文档(初版): 1.主要是为了给IAR的绝对新手作参考用 2.emot制件,由 Zigbee & IAR 学习小组 保持修订权 3.希望用IAR朋友能将它修订完善 4.任何人可无偿转载、传播本文档,无须申请许可,但请保留文档来源及标志 5.如无重大升级,请沿用主版本号 版本 版本号 制作时间 制定人/修改人 说明 1.00 2008/7/27 emot 初版(仅供新手参考) 1.01 2010/8/19 Emot 增加 下载程序(第四章) 在线调试程序(第五章)
序: 其实IAR和keil区别也没有多大,不过很多人就是怕(当初我也怕)。怕什么呢,怕学会了,真的就是害怕学习的心理让新手觉得IAR是个不好用的或者说“还不会用的”一个工具吧。我也是一个刚毕业的小子,如果说得不妥,还请大家来点砖头,好让小组筑高起来。 (Zigbee & IAR 学习小组地址是http://group.ednchina/673 ) 初版我将会说明以下3个问题,IAR的安装、第一个IAR工程的建立和工第 2 页
作编译。这是我写的第一个使用说明,不足的以后补充吧。 一、 IAR软件安装图解 1.打开IAR软件安装包进入安装界面 打开软件开发包 软件安装界面 2.按照提示步骤执行,一直到授权页面,输入序列号,IAR中有两层序列号,所以要输入两组序列号。 输入第一组序列号 输入第二组序列号 3.选择安装路径(最好默认,不默认也不影响使用) 路径选择页面 修改路径 4.选择全部安装(Full) 选择全部安装 5.按提示知道安装完成。 安装完成页面
二、新建第一个IAR工程 用IAR首先要新建的是工作区,而不是工程。在工作区里再建立工程,一个工作区里似乎也不能建多个工程(我试过,但没成功,不知道IAR里提出workspace的概念是为什么?) 第 3 页
要不打IAR的help来看,说清楚也是头痛的事,先知道有要在工作空间里建工程就对了。 新建IAR工作空间,首先是菜单File里选择Open再选择Workspace,为方便说明再遇到菜单我就直接说成File-Open-Workspace这样了。看了下面图上的红圈就知道是怎么回事了。 2-1 接着就会看到一片空白。这时就是新的“办公区”了。 2-2 有了工作空间就可以建立工程了。 菜单Project-Create New Project。点了之后出现下面这个对话框。从这里就算是正式说事了。 2-3 上面图中有个Tool Chain:8051(就要标题下面,很明显的)这里选的是芯片的类型,不IAR有很多很多专用的环境,比如ARM的,430的,等。这里只有8051,相当于没得选。它的下面有个Project templates(工程模板),然后是asm,c++,c,我只认识这3项,说的意思就是选择用户使用的开发语言,我的话选C。展开C前面的+号,显示如下图(上个图的局部) 2-4 用你的鼠标点下main之后再点OK(就是图2-3最下方的那个OK了)。 新建工程就剩下最后一步了,保存。 2-5 大文件名后面填个名字保存。提醒下各位,在关闭IAR时或关闭IAR空间第 4 页
时,还会提示要求保存工作空间。别一不小心关完了。 IAR工作空间文件后辍是.eww。 IAR工程的后辍名是.ewp。 eww和ewp文件都会关联到IAR,不过eww文件才能正确的自动打,而ewp文件必是先打开IAR(打开时已经自动建立了一个新的工作空间,如果已经打开一个工作空间,则必须先新建一个工作空间,这才和必须在工作空间里编辑工程不矛盾),再导入工程才可用,这样太麻烦了,还是保存eww文件来得方便。
三、第一个IAR项目 估且叫它为项目吧。主要想跟大家说下IAR的设置,然后完成代码的编译。就像keil里编译工程要设置一样,IAR也要设置。 打开设置界面很简单。Alr+F7快捷键打开就行了。在菜单里的位置是Project-Options。还可以在工程名字上用右键打开。我喜欢第三种,但是这里我不想截图了,自己看着办吧。 打开的设置界面如是: 2-6 对应图2-6左边几个选项,我要说的有General Options,C/C++ Compiler,Debugger这几项。 对于General Options来说不新图,看上面就行了。主要要改支的地方就一个,Derivative这里,默认的是plain,这里把它改成CC1110。 再来看要说的第二项C/C++ Compiler, 2-7 第 5 页
小心看了,上面划了红框作标注的。 再看最后一个选项Debugger, 2-8 重要的地方我用红框框住了,这里呢有几个选项,我比较常用就两个Simulator,Chipcon,前一个在写程序时(没用仿真器和1110模块)用,后一个在调试(有硬件)时候用。你看哪一个选项跟你手上的实情相符? 接着的工作就是写代码,我这里用了一个成都无线龙的小工程作演示就是了,难得写。 ………………(省略了复制代码的过程) 菜单Project-Make,就会得到下图所示的效果——没有警告和错误。 2-9 原则上还应该讲一讲如何把程序下载到单片机,如何得到hex文件等等,不过今天太累了,就写到这里吧。
四、下载程序 (以TI的CC1110为例) 在编译正确以后,就需要将程序下载到MCU运行,下载程序一板需要的工具有下载器,目标板。我手上有SRF04EB仿真器和CC1110模块。先写一个编译通过的程序,然后在工程选项(Project->Option...)里作如下设置: 4-1 左列选Debugger,在右边Setup->Driver区域选择Texas Instruments,单击"OK"确定,完成IAR Embedded Workbench IDE的设置。接着要进行第 6 页
仿真器的连接,用USB线将PC和仿真器相边,再用10pin排线将仿真器与CC1110模块相连,在仿真器上按一次复位键,然后在菜单Project里点Debug,也可以使用工具栏里的菜单,同见下图: 4-2 图中右上角红框中的按钮就是Debug按钮,单击可将程序下载到CC1110模块。接着可以看到下载成功的界面。请记本单提及的按钮名称,请读者记好它们的名字。 4-3 此时界面出现了新的工具条,如图中左上角所示,最右边一个是退出仿真模式,退出IDE与仿真器的连接。这里还要介绍它左边的另外8个按钮,为接下来叙述调试作准备,这8个按钮要在IDE与仿真器处于连接时才可见(可用)。左起,1-复位,在IDE与仿真器连接的时候,用此按钮将程序指针(PC)指向程序开始处,2-停止,图中是灰包的,在程序运行时方可用,它可以使用正在运行的程序停下来,3-单句执行,程序停止时,单击本按钮可让程序向前执行一条语句,4-进入语句内执行,如进入一个函数体里执行,在汇编级向前执行一条指令,5-运行至本函数结束,停止于上一层函数体内,6-单句,作用和3相似,但又不同,具体可参考(EM8051_UserGuide.pdf),7-执行到光标所在行,8-全速运行,在设置了断点处停下。
五、在线调试程序 在线高度程序前应该使用IAR下载程序,下载程序的步骤见于第四章,下第 7 页
载成功后的界面见4-3,在IAR里常见的调试手段有设置断点、查看(修改)寄存器值和变量值,我们将上一单用的小工程修改,增加一个变量,然后用来作为本程序的例子。 程序清单: //IAR示范用例 /*----------------------------------头文件----------------------------------*/ #include "iocc1110.h" /*----------------------------------本地函数----------------------------------*/ void halWait(unsigned char wait); //程序入口 void main( void ) unsigned char i; P1DIR |= 0X03; //P10,P11输出,假定这两个IO接了LED P1 = 0xff; //高电平关灯 while(1) P1 ^= 0X01; //P10所接LED取反 for (i = 0; i < 100; i++) //延时200ms halWait(1); //23行 halWait(1); //ms延时函数 第 8 页
void halWait(unsigned char wait) unsigned long largeWait; if(wait == 0) {return;} largeWait = ((unsigned short) (wait << 7)); largeWait += 59*wait; largeWait = (largeWait >> (CLKCON & 0x07)); while(largeWait--); return; 在第23行设置断点,设置断点有4种方法, 设置断点前请先将光标定位到要设断点的行,法一用菜单Edit->ToggleBreakpoint, 法二单击Debug左边第一个红色按钮,法三在代码上右键选Toggle Breakpoint(code),法四在代码行首再左的灰色位置双击鼠标左键。 然后单击Debug下载程序,下载后保持连接关系,然后在单击全速运行(按键名称,详见第四章),程序将会停止在断点处,当程序停止运行时,在IDE中可以查看诸多信息。