IAR编译环境的配置 初级
IAR开发环境搭建

IAR 集成开发环境的使用与设置:建立保存一个工程如何向工程中添加源文件如何编译源文件1)打开 IAR 集成开发环境,单击菜单栏的 Project,在弹出的下拉菜单中选择 Create New Project2)在弹出窗口选中 Empty project 再点 OK,如下图:3)选择保存工程的位置和工程名:4)选择菜单栏上的 File,在弹出的下拉菜单中选择 Save Workspace。
在弹出的 Save Workspace As 对话框中选择保存的位置,输入文件名即可,保存 Workspace。
新建源文件,点击 File 选择 New 中 File,再点击 File 选择 Save 填写好源文件的名称,点击保存即可。
源文件建立好了还需要把源文件添加到工程里面,选择 project 的 Add File,添加刚才保存的文件。
比如我刚才保存为 main.c,在弹出的对话框选择 main.c 即可,然后点击打开。
这时,发现左边框里面出现了我们添加的文件,说明添加成功。
如果想删除文件怎么办?在 Workspace 中选择 main.c,然后右键选择 Remove,删除源文件;源文件这时候只是在工程中被移除了,并没有被真正删除掉,如果不需要,必须在保存的文件夹里面手动删除。
添加文件也有快捷方式,在工程名上点右键,选择 Add.如下图:2.4.5 工程的设置IAR 集成了许多种处理器,在建立工程后必须对工程进行设置才能够开发出相应的程序。
设置步骤如下:1) 点击菜单栏上的 Project,在弹出的下拉菜单中选择 Options,弹出的 Option for node “Led”, 快捷方式:在工程名上点右键,选.Options设置设置窗口如下图所示:2) 设置相关参数。
在 General Option 选项 Target 标签下,Device 栏中选择 Texas Instruments 文件夹下的CC2530F256.i513) 设置 Codemodel、Data model、Calling convention 如下图所示:4)在 Stack/Heap 标签,XDATA 文本框内设置为 0x1FF5) Linker 选项 Config 标签,勾选 Override default,点击下面对话框最右边的按键,选lnk51ew_cc2530F256_banked.xcl6)Output 标签选项主要用于设置输出文件以及格式,勾选 other7) Debugger 栏中的 Setup 栏设置为 Tesas Instruments经过以上设置,所有设置已完成。
K60 IAR配置文件

K60 IAR环境的编译文件Flash的配置:$PROJ_DIR$\..\..\src\app$PROJ_DIR$\..\..\src\common $PROJ_DIR$\..\..\src\cpu$PROJ_DIR$\..\..\src\cpu\headers $PROJ_DIR$\..\..\src\platforms $PROJ_DIR$\..\..\src\drivers $PROJ_DIR$\..\..\src\drivers\adc $PROJ_DIR$\..\..\src\drivers\AT24C02 $PROJ_DIR$\..\..\src\drivers\exti $PROJ_DIR$\..\..\src\drivers\delay $PROJ_DIR$\..\..\src\drivers\FTM $PROJ_DIR$\..\..\src\drivers\gpio $PROJ_DIR$\..\..\src\drivers\i2c $PROJ_DIR$\..\..\src\drivers\lptmr $PROJ_DIR$\..\..\src\drivers\mcg$PROJ_DIR$\..\..\src\drivers\PIT $PROJ_DIR$\..\..\src\drivers\pmc $PROJ_DIR$\..\..\src\drivers\rtc $PROJ_DIR$\..\..\src\drivers\uart $PROJ_DIR$\..\..\src\drivers\wdog $PROJ_DIR$\..\..\src\drivers\dma $PROJ_DIR$\..\..\src\LIB\CMSIS $PROJ_DIR$\..\..\src\LIB\FatFs $PROJ_DIR$\..\..\build$PROJ_DIR$\..\..\src\uCOS-II\Ports $PROJ_DIR$\..\..\src\uCOS-II\Source $PROJ_DIR$\..\..\src\uCOS-II\App $PROJ_DIR$\..\..\src\uCOS-II\App\CFG $PROJ_DIR$\..\..\landao_dmeoNDEBUGIARTWR_K60N512$PROJ_DIR$\..\config files\fire_ROM_K60N512.icfRAM 配置:$PROJ_DIR$\..\..\src\app$PROJ_DIR$\..\..\src\common $PROJ_DIR$\..\..\src\cpu$PROJ_DIR$\..\..\src\cpu\headers $PROJ_DIR$\..\..\src\platforms $PROJ_DIR$\..\..\src\drivers $PROJ_DIR$\..\..\src\drivers\adc $PROJ_DIR$\..\..\src\drivers\AT24C02 $PROJ_DIR$\..\..\src\drivers\exti $PROJ_DIR$\..\..\src\drivers\delay $PROJ_DIR$\..\..\src\drivers\FTM$PROJ_DIR$\..\..\src\drivers\gpio $PROJ_DIR$\..\..\src\drivers\i2c $PROJ_DIR$\..\..\src\drivers\LED $PROJ_DIR$\..\..\src\drivers\lptmr $PROJ_DIR$\..\..\src\drivers\mcg $PROJ_DIR$\..\..\src\drivers\PIT $PROJ_DIR$\..\..\src\drivers\pmc $PROJ_DIR$\..\..\src\drivers\rtc $PROJ_DIR$\..\..\src\drivers\timer $PROJ_DIR$\..\..\src\drivers\uart $PROJ_DIR$\..\..\src\drivers\wdog $PROJ_DIR$\..\..\src\drivers\dma $PROJ_DIR$\..\..\src\LIB\CMSIS $PROJ_DIR$\..\..\src\LIB\FatFs $PROJ_DIR$\..\..\build$PROJ_DIR$\..\..\src\uCOS-II\Ports $PROJ_DIR$\..\..\src\uCOS-II\Source $PROJ_DIR$\..\..\src\uCOS-II\App $PROJ_DIR$\..\..\src\uCOS-II\App\CFG $TOOLKIT_DIR$\incIARDEBUGTWR_K60N512$PROJ_DIR$\..\config files\fire_RAM_K60N512.icf。
IAR编译器配置(AVR)

IAR编译器配置(AVR)IAR编译器配置(AVR)⼀、EEPROM 区域数据存储:__eeprom unsigned char a;//定义⼀个变量存放在EEPROM空间__eeprom unsigned char a @ 0x8;//定义⼀个变量存放在EEPROM空间0X08单元__eeprom unsigned char p[] @ 0x22//定义⼀个数组存放在EEPROM空间,开始地址为0X22单元__eeprom unsigned char a @ 0x08=9;//定义⼀个常数存放在EEPROM空间0X08单元__eeprom unsigned char p[] @0x22={1,2,3,4,5,6,7,8};EEPROM操作宏取函数:在comp_a90.h intrinsics.h头⽂件⾥有详细说明。
⾃动⽣成.eep⽂件置:在Project->Options->linker->config>的linker command line中观察该Project使⽤了哪个XCL⽂件。
本⽂使⽤M8编译,使⽤⽂件是”TOOLKIT_DIR$\src\template\cfgm8.xcl”-Ointel-extended,(CODE)=.hex-Ointel-extended,(XDATA)=.eep⼆、FLASH 区域数据存储:⽤关键字 __flash 控制来存放, __ flash 关键字写在数据类型前后效果⼀样__flash unsigned char a @ 0x8;//定义变量存放在flash 空间0X08单元__flashunsigned char p[] @ 0x22//定义数组存放在flash 空间,开始地址为0X22单元__flash unsigned char a @ 0x08=9;//定义常数存放在flash 空间0X08单元__flash unsigned char p[] @ 0x22={1,2,3,4,5,6,7,8};unsigned int __flash * p;//定义个指向flash 空间地址的指针,16位。
IAR配置

IAR的介绍《IAR EWARM V5 嵌入式系统应用编程与开发》[ 2010-8-17 3:03:00 | By: 32446975 ]《IAR EWARM V5 嵌入式系统应用编程与开发》/Art_Xue_ChaptShow.asp?Id=285.1.1基本选项配置在工作区(Workspace)中选定一个项目,单击Project下拉菜单中的Options…选项,弹出选项配置对话框,从左边Category列表框内选择General Options进入基本选项配置。
图5.1 基本选项配置中的Target选项卡图5.1所示为基本选项配置中的Target选项卡,Processor variant(处理器类型)选项区域中的Core复选框用于设置ARM核,默认为ARM7TDMI,也可以从其左边的下拉列表框中选择其它ARM核,例如ARM9、ARM11或Xscal等。
建议使用时尽可能根据当前所用ARM芯片,选中Device复选框,点击其右边的按钮,从弹出的文本框内选择所用器件,这样IAR EWARM会根据所选芯片自动设置器件描述文件,以便于调试。
如果所选ARM芯片含有浮点数协处理器,可在FPU下拉列表框内选取合适的浮点处理单元。
Endian mode选项区域用于选择大小端模式,默认为Little。
图5.2所示为基本选项配置中的Output选项卡。
Output file选项区域用于设置编译后生成的输出文件类型,可选择Executable(生成执行代码)或Library(生成库文件)。
Output directories选项区域用于设置输出文件目录,默认执行代码文件目录为Debug\Exe,目标文件目录为Debug\Obj,列表文件目录为Debug\List,也可设置其它目录。
图5.2基本选项配置中的Output选项卡图5.3基本选项配置中的Library Configuration选项卡图5.3所示为基本选项配置中的Library Configuration选项卡。
IAR基本选项配置

5.1.1基本选项配置在工作区(Workspace)中选定一个项目,单击Project下拉菜单中的Options…选项,弹出选项配置对话框,从左边Category列表框内选择General Options进入基本选项配置。
图5.1 基本选项配置中的Target选项卡图5.1所示为基本选项配置中的Target选项卡,Processor variant(处理器类型)选项区域中的Core复选框用于设置ARM核,默认为ARM7TDMI,也可以从其左边的下拉列表框中选择其它ARM核,例如ARM9、ARM11或Xscal等。
建议使用时尽可能根据当前所用ARM芯片,选中Device复选框,点击其右边的按钮,从弹出的文本框内选择所用器件,这样IAR EWARM会根据所选芯片自动设置器件描述文件,以便于调试。
如果所选ARM芯片含有浮点数协处理器,可在FPU下拉列表框内选取合适的浮点处理单元。
Endian mode选项区域用于选择大小端模式,默认为Little。
图5.2所示为基本选项配置中的Output选项卡。
Output file选项区域用于设置编译后生成的输出文件类型,可选择Executable(生成执行代码)或Library(生成库文件)。
Output directories选项区域用于设置输出文件目录,默认执行代码文件目录为Debug\Exe,目标文件目录为Debug\Obj,列表文件目录为Debug\List,也可设置其它目录。
图5.2基本选项配置中的Output选项卡图5.3基本选项配置中的Library Configuration选项卡图5.3所示为基本选项配置中的Library Configuration选项卡。
IAR C/C++编译器提供了DLIB库,支持ISO/ANSI C和C++以及IEEE754标准的浮点数。
通过Library下拉列表框选择希望采用的运行库。
选择None表示应用程序不链接运行库;选择Normal表示链接普通运行库,其中没有locale接口和C locale,不支持文件描述符,printf and scanf不支持多字节操作,strtod不支持十六进制浮点数操作。
iar编译器使用指南

iar编译器使用指南(原创版)目录1.IAR 编译器简介2.IAR 编译器的特点3.IAR 编译器的安装与配置4.IAR 编译器的使用5.IAR 编译器的优势与不足正文【1.IAR 编译器简介】IAR 编译器,全称 IAR Embedded Workbench,是一款由瑞典 IAR Systems 公司开发的集成开发环境(IDE), 主要用于编写和编译嵌入式系统软件。
IAR 编译器支持多种编程语言,如 C、C++等,适用于各种微处理器架构。
【2.IAR 编译器的特点】IAR 编译器具有以下特点:(1)高度优化的编译器,生成的代码执行效率高;(2)强大的调试功能,支持在线调试、断点调试等;(3)支持多种处理器架构,如 ARM、MIPS 等;(4)提供丰富的库函数,方便开发者调用。
【3.IAR 编译器的安装与配置】安装 IAR 编译器需要先下载对应的安装包,然后按照安装向导进行安装。
安装完成后,需要配置编译器,包括设置编译选项、链接器选项等。
配置完成后,即可开始使用 IAR 编译器编写和编译代码。
【4.IAR 编译器的使用】使用 IAR 编译器编写代码时,需要创建一个项目,然后编写源代码文件。
编写完成后,可以使用 IAR 编译器进行编译,生成可执行文件。
在开发过程中,可以使用 IAR 提供的调试工具进行调试,以提高代码质量。
【5.IAR 编译器的优势与不足】IAR 编译器的优势在于其高度优化的编译器和强大的调试功能,能够帮助开发者快速编写高效、稳定的嵌入式系统软件。
然而,IAR 编译器也存在一些不足,如学习曲线较陡峭,对于初学者可能不太友好。
IAR开发环境及IAR固件库资料

文件stm32f10x_ppp.h包含了.c文件所需的预定 义,函数声明以及变量定义等
同时,外设需要在时钟控制下工作,因此会用 到时钟的头文件
说明
CM3对包括外设的所有存储设备统一编址,因此在头文件 中包含了存储器的映射关系stm32f10x_map.h
3. 调用函数PPP_Init(..)来初始化外设PPP。
4. 在这一步,外设PPP已被初始化。可以调用函数 PPP_Cmd(..)来使能之。PPP_Cmd(PPP, ENABLE); 可以 通过调用一系列函数来使用外设。每个外设都拥有各自的 功能函数。
外设的操作步骤
注: 1. 在设置一个外设前,必须调用以下一个函数来使能它的
二、创建工程
点击保存后,便完成 工程创建,结果如图所示。
三、添加组
右击工程名字,然后选 择Add->Add Group添加 工作组EVARM、User、 Doc,保存,如图所示;
步骤五:Option设置(1)
在项目名称上单击右键选择Option,或 点击菜单Project→Option。
步骤五:Option设置(2):General
Option
设置 Taget
在Processor Variant 中选择“Device”
单击芯片选择按钮, 选择ST系列芯片:
该文件也包含了所有寄存器的声明
用户文件与库文件通过stm32f10x_lib.h建立关系,该文件中 定义了所有外设头文件的头文件,用于声明头文件,因此需 要include在用户的文件中
而文件stm32f10x_conf.h则指定具体的参数,用户可以对此 文件进行修改
IAR开发环境操作步骤

IAR开发环境操作步骤王晓宁2013/1/25运行IAR后的界面点击相关图标,有许多信息可以查询File→New→Workspace(本步骤也可省略)打开的界面Project Create New Project弹出的对话框中选择Empty project,点OK在你喜欢的根目录下新建一个文件夹例如给新文件夹取名为:IAR MSP430,点击打开在IAR MSP430中再建一个文件夹,如Trying1将新工程(或称项目)Trying First Project放在Trying1 文件夹中,然后点保存则在IAR中可以看到我们新建的工程了,但它是空的,我们需要向里面添加c文件等点击左上角的空白页图标(New document)则主窗口显示一个未命名的(Untitled1)空白文档在该文档中编写我们的C程序,或粘贴我们已经编制好的C程序点击左上角的Save图标弹出的对话框中,在文件名栏给文件命名,注意C文件必须以.c为扩展名(后缀)。
点保存可以注意到该C文件的名称已经具体了(Trying first project.c)Add→Add“Trying first project.c”则可以看到Trying first project.c现在已经添加进工程了再将鼠标点到工程名上然后点右键,在弹出的对话条中选Options弹出的对话框中选General Options在Target标签的Device栏中下拉选项→MSP430GXXX Family→MSP430G2553则MSP430G2553出现在Device项中再点中Debugger项在Setup标签的Driver栏中下拉,并选中FET DebuggerFET Debugger被选中选中Texas Instrument USB-IF点OK照单操作 Make或者直接点击图标Download and Debug(小蓝旗图标)在对话框中给出工作空间的名字,点保存可以看到左下角编译产生的信息并转入到调试界面此时程序已经下载到你的板子中(当然你要保证你的板子已经通过USB线连到电脑上),然后点击左上角的 (Go)图标,程序就运行了,并可以观察板子的运行情况。
IAR环境下编译CC2640入门开发

添加仿真器支持 仿真提示板子固件太老,需要更新 更新固件,打开命令窗口 cd D:\ti\ccsv61\ccsv6\ccs_base\common\uscif\xds110,输入下面两个命令,其中第一条指令输完之后,等待操作
系统识别新的驱动
其中第一条指令输完之后,等待操作系统识别新的驱动 驱动更新完之后正常使用
ticcsv61ccsv6ccsbasecommonuscifxds110输入下面两个命令其中第一条指令输完之后等待操作系统识别新的驱动
IAR环境下编译 CC2640入门开发
1. 安装SDK包,之后导入AIR里面,编译报错
看样子似乎是xdc工具的路径配置不对,进入路径配置对话窗
开始配置
配置完之后,重新编译 Fatal Error[Pe1696]: cannot open source file "C:\ti\tirtos_simplelink_2_13_00_06\packages\ti\boards\SRF06EB\Board.c" 看下截图 重新添加一下Board.c
[转载]【IAR】设置和编译信息解析?程序运行耗时
![[转载]【IAR】设置和编译信息解析?程序运行耗时](https://img.taocdn.com/s3/m/2db982f15ff7ba0d4a7302768e9951e79b896919.png)
[转载]【IAR】设置和编译信息解析?程序运行耗时原文地址:【IAR】设置和编译信息解析程序运行耗时作者:liangchaoxi4一、设置:1、怎么设置可以查看单片的内存(消耗)使用状况?IAR的菜单栏 -->T ools -->IDE Options -->Messages -->Show build messages选择 ALL设置完后IAR点MAKE,没有error的话最后会在Message框显示代码的大小(菜单栏-->View-->Maessge-->Build)1. Tools->option->messages show build messages设置成all这样可以在编译后看到用了多少个RAM多少Code,中间每个文件使用情况也可以看得到。
2. Project->Options...(Alt-F7))的Linker->List中勾选Generate linker map file这样可以生成map文件,这个就更详细了(需要什么自己勾选)。
3. Project->Options...(Alt-F7))的C/C++ compile ->List中勾选output list file这样可以看到每个文件编译的细节的list文件,还可以看到反汇编(需要什么自己勾选)。
二、编译信息1、下面什么意思4 960 bytes of CODE memory4 150 bytes of DATA memory44 bytes of CONST memory4 960 个字节的代码(占FLASH)4150 个字节的变量数据(占RAM)44 个字节的常量数据(占FLASH)生成bin文件的大小= 4960+441、9 486 bytes of CODE memory404 bytes of DATA memory (+ 36 absolute )520 bytes of CONST memory1、的括号内表示内存的绝对使用量,对应你设的全局变量大小2、表示共享的存储空间,和单片机的结构有关2、2011年5月提问:9 176 bytes of CODE memory (+ 30 bytes shared)568 bytes of CONST memory (+ 18 148 bytes shared)943 bytes of DATA memory (+ 114 bytes shared)答:"+ 114 bytes shared"或linking后的"+114 bytes absolute"指的是您在程序中有144bytes 使用@ operator 或#pragma location=operator 或__no_init volatile语法定义的数据。
05-IAR EWARM开发环境-讲义

变量和状态观察
• 静态、局部变量 • 表达式 • 寄存器 • 存储器 • 虚拟终端(标准输入输出)
北京交通大学 国家电工电子教学基地
设置调试/下载方式
• 选择调试器驱动 • 设定下载、调试运行环境
北京交通大学 国家电工电子教学基地
IAR EWARM开发环境
IAR EWARM开发环境
IAR的项目管理
IAR EWARM开发环境
代码生成主要步骤 创建项目 给项目添加文件
• 加入已有的源文件、编译过的目标代码 • 建立新文件并加入项目
代码调试 选择软件仿真或目标硬件中运行 代码下载或固化 运行控制
• 全速运行 • 单步运行 • 运行到断点
设置编译和连接参数
• 选择处理器(内核/芯片) • 选择运行库配置和选项 • 设置编译器预处理命令、优化参数、头文件路径等
嵌入软件代码运行和调试环境 •目标系统工具和程序映像传输
UART
库文件 lib.a
jumper 标准输出
目标文件 file1.o
目标文件
file2.o
RAM Flash
ARM连接器
JTAG
微处理器 引导ROM
标准输入
下载/调试
ARM可执行文件 project.out
北京交通大学 国家电工电子教学基地 北京交通大学 国家电工电子教学基地
北京交通大学 国家电工电子教学基地
IAR EWARM工具的使用 所有工作均可通过IDE环境完成 用户直接操作
• 源程序编辑器 • 项目管理 • C-SPY调试器
通过菜单命令和参数设置使用
• 汇编器 • C/C++编译器 • ILINK 连接器
如何在IAREWARM下建立工程和配置STM开发环境

如何在IAREWARM下建立工程和配置STM开发环境如何在I A R E W A R M 下建立工程和配置S T M开发环境文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]作者:燕山大学鲁信琼本文说明如何在WindowsXP操作系统上,使用IAREmbeddedWorkbenchforARM5.30建立一个IAR项目,并且配置STM32开发环境。
一、生成一个新项目要使用IAR进行STM32嵌入式系统开发,必须从建立一个项目(project)开始,下面以在E:\\下建立一个名为Example的项目为例介绍。
1.创建项目目录、复制公共文件(1)在E盘下创建名为的Example文件夹,即项目根目录为E:\\Example。
(2)在项目根目录下建立一个EWARMv5文件夹用于存放项目文件、工作空间文件和项目配置相关文件。
(3)解压标准外设驱动文件库(stm32f10x_stdperiph_lib_V3.1.2.zip),将其中的“Libraries”文件夹复制到Example目录下。
(4)复制标准外设驱动库目录Project\\T emplate下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件到Example文件夹下。
main.c可以不用复制,我们自己写。
复制标准外设驱动库目录Project\\T emplate\\EWARMv5下的stm32f10x_flash.icf、st m32f10x_flash_extsram.icf、stm32f10x_nor.icf和stm32f10x_ram.icf到Example\\EWA RMv5文件夹下。
复制好的目录如图1所示。
图1.Example文件夹下的文件2.创建新的工作空间嵌入式系统开发大都是面向项目(Project)的,需要建立Project来管理项目开发。
IAREWRAM又是基于工作空间(Workspace)的集成开发环境,Project必须放在工作空间里面,所以我们首先应该建立工作空间。
eclipse for arm(IAR)的编译环境搭建

1.准备工作:7个文件:1.此文档2.eclipse的免安装工作环境;3.IAR-ARM的安装文件;4.IAR-ARM的破解补丁;5.java安装文件;6.汉化包文件;7.需要覆盖到解压2后的IAR中的文件夹c和ST2.安装顺序:一.安装java(如果安装过就免去);二.安装IAR-ARM;三.破解IAR;四.将Eclipse解压到指定目录;五.配置Eclipse的Java和IAR的环境;六.将IAR的标准头文件添加到IAR的标准C头文件的环境变量下也就是上面的7中的两个文件夹。
七.汉化eclipse3.安装截图:A.安装java如果更改了目录请记住,后面要用。
默认是C盘。
B.安装IAR-ARM点是点掉钩因为没有破解这个安装时间比较长可能需要40分钟左右,安装后的大小有4G多。
C.破解D解压Eclipse运行:E添加环境变量如果看到进度条,说明java的环境已经OK,如果java安装在C盘的话应该是可以直接运行的,更改java虚拟机的路径在eclipse的根目录下的eclipse.ini文件中如果更改了java环境安装路径的话,在这里修正java虚拟机路径即可,下一步配置IAR的编译器环境变量找到IAR的安装目录,系统会自动识别当前IAR版本F现在我们可以使用eclipse调用IAR的编译器新建一个工程这里选择IAR的可执行文件类型给工程取一个名字然后下一步这里选择MCU型号这个自行探索选择完毕后finish即可如果你有已经完成的IAR工程,这里可以直接导入同时还支持压缩包的导入打开后,最好手动拖动一下改变下文件结构,添加工程头文件目录在左边选中工程,右键或者在目录中选择属性操作完成后点OKPS:添加头文件目录的时候可以多选PPS:…..如果用到了特殊的头文件公共的,推荐放到IAR的目录下的公共头文件中我的在C:\Program Files\IAR Systems\Embedded Workbench6.5\arm\inc\cG.添加STM32的一些公共文件因为IAR安装后并没有STM32的所有头文件,所以需要将上面的7文件加压后覆盖IAR文件夹里面的c和ST,如图覆盖的目录如图H.汉化:方法1:将压缩包文件夹language.zip\language\eclipse中的features和plugins的内容拷贝到eclipse的同名的文件夹中,启动eclipse就可以了。
IAR环境搭建教程完整版

ARM论
- ARM
术论
基于 ARM 的 STM32 嵌入式开源项目参考资料
/bbs/viewtopic.php?id=2124
20
32
[2009-11-26 2:18:50]
ARM论
- ARM
HEX 载时 载
BIN
们 进 HEX HEX
这
选择
HEX
对
载
FLASH
骤4
载
STM32
FLASH
/bbs/viewtopic.php?id=2124
16
32
[2009-11-26 2:18:50]
ARM论
- ARM
术论
基于 ARM 的 STM32 嵌入式开源项目参考资料
18
32
[2009-11-26 2:18:50]
ARM论
- ARM
术论
基于 ARM 的 STM32 嵌入式开源项目参考资料
骤5
[OK]
钮
认
编译
/bbs/viewtopic.php?id=2124
19
32
[2009-11-26 2:18:50]
录
为库
STM32F10x_StdPeriph_Lib_V3.1.2\Project\STM32F10x_StdPeriph_Examples\ STM32F10X
/bbs/viewtopic.php?id=2124
3
32[2009-11-来自6 2:18:50]/bbs/viewtopic.php?id=2124
17
32
[2009-11-26 2:18:50]
ARM论
IAR操作文档

IAR编译器操作文档一、工程建立:打开,进入IAR 工程环境,弹出如下对话框:在此可以选择,新建工程或者打开原来已有的工程,以新建工程为例,点击:弹出如下对话框:按照自己所熟悉的语言选择对应的Project templates (工程模板),在此以C语言为例,点击OK,保存工程,后缀为.ewp;然后进入界面,保存工作组:后缀为.eww;工程建立完毕。
二、基础选项设置:1、选择芯片型号,以0537为例,在工程上点右键,如图选择:点击进入,如下图:0537 flash 有BANK区,选择如下:2、输出HEX文件,步骤一,如下图:人为将.d26改成.hex即可;3、输出map文件:4、debugger 选项:若要硬件仿真,选择如下:若要软件仿真,如下图:三、基本语法1、变量定义:A、saddr区域的定义:__saddr unsigned char xyz;对应map为:SADDR_ZRelative segment, address: FE20 - FE20 (0x1 bytes), align: 0 Segment part 3. Intra module refs: initENTRY ADDRESS REF BYxyz FE20B、扩展RAM区域定义:1)、#pragma dataseg=IXRAM__no_init unsigned char sec_cou; // __no_init 不能少;#pragma dataseg=default外部调用声明:extern __no_init unsigned char sec_cou;或extern unsigned char sec_cou;对应map为:IXRAMRelative segment, address: E000 - E001 (0x1 bytes), align: 0 Segment part 11. Intra module refs: Timer_UserENTRY ADDRESS REF BYsec_cou E000 main2)、typedef struct UartMode{uint8 bytGetOneCmdFlag;uint8 bytGetLen;uint8 bytUartBusyFlag;uint8 bytSourceComm;}UARTMODE;#pragma dataseg=IXRAM__no_init UARTMODE tempdata;#pragma dataseg=defaultTempdata. bytGetOneCmdFlag/ Tempdata. bytGetLen……对应map为:IXRAMRelative segment, address: F000 - F006 (0x7 bytes), align: 0 Segment part 2. Intra module refs: main ENTRY ADDRESS REF BY tempdata F000C、常数定义:#pragma location = "OPTBYTE"__root const unsigned char opbyte[] = {0x7F,0x01,0x00,0x00,0x03};对应map为:OPTBYTERelative segment, address: 0080 - 0084 (0x5 bytes), align: 0 Segment part 7. ROOT.ENTRY ADDRESS REF BYopbyte 00802、BANK 定义:1)常量定义BANK#pragma location = "BANK3"const unsigned int a=1000;对应map为:BANK3Relative segment, address: 00038000 - 00038001 (0x2 bytes), align: 1 Segment part 15. Intra module refs: mainENTRY ADDRESS REF BYa 000380002)函数定义BANK#pragma location = "BANK4"__banked void add_2(void){}外部调用声明:extern __banked void add_2(void); //__banked不能少;对应map为:BANK4Relative segment, address: 00048007 - 00048018 (0x12 bytes), align: 0Segment part 17.ENTRY ADDRESS REF BYadd_2 00048007 main (main) 3)文件定义BANK:在对应的文件上点右键,选择option,如下:如下选择配置:3、中断声明#pragma vector = INTTM000_vect或#pragma vector = 0x0020 __interrupt void Timer_User (void){}4、位变量定义:typedef struct{unsigned char B0:1;unsigned char B1:1;unsigned char B2:1;unsigned char B3:1;unsigned char B4:1;unsigned char B5:1;unsigned char B6:1;unsigned char B7:1;}_MYFLAG;extern __saddr volatile _MYFLAG Flag2_sys; #define Flag1Sec Flag2_sys.B1#define Flag1000ms Flag2_sys.B2#define IS_IR_SEND Flag2_sys.B3#define IR_TX Flag2_sys.B4王工:你好!时钟切换配置见如下://内部8M切换外部主时钟OSCCTL=0X41; //X1振荡模式;/* EXCLK OSCSEL 高速系统时钟引脚操作模式0 0 I/O端口模式0 1 X1振荡模式1 0 I/O端口模式1 1 外部时钟输入模式*/PCC=0X00;MSTOP=0; // 1: X1 stopMCM=0X07; //MCM=5,7 选择高速系统时钟,外部硬件选择高速系统时钟while(!MCS);RSTOP=1; //1: 内部8M停止//内部切换副时钟OSCCTL=0x70;MSTOP=1;PCC = 0;CSS=1;while(CLS);RSTOP=1;王工:您好!多谢支持!您的例程有两种:1 内部8M切换外部主时钟2 内部切换副时钟我还需要“外部主时钟切换到内部8M”,不知道能否实现?。
iar 初始化流程

IAR 初始化流程IAR(IAR Embedded Workbench)是一个功能强大的集成开发环境(IDE),专为嵌入式系统开发而设计。
IAR 提供了从代码编辑、编译、调试到编程的一系列工具,可以帮助开发人员快速高效地开发嵌入式系统。
IAR 的初始化流程包括以下几个步骤:1. 安装IAR首先,需要从 IAR 官网下载并安装 IAR。
安装过程非常简单,只需按照提示操作即可。
2. 创建一个项目安装完成后,打开 IAR,创建一个新的项目。
在“新建项目”对话框中,选择要创建的项目类型,输入项目名称和路径,然后单击“确定”。
3. 添加源文件接下来,需要将源文件添加到项目中。
IAR 支持多种编程语言,包括 C、C++、汇编等。
您可以将源文件拖放到 IAR 的编辑器中,也可以使用“添加文件”菜单添加源文件。
4. 配置项目在添加完源文件后,需要对项目进行配置。
IAR 提供了多种配置选项,包括编译器选项、链接器选项和调试选项等。
您可以根据自己的需要进行配置。
5. 编译项目配置完成后,就可以编译项目了。
IAR 提供了多种编译模式,包括调试模式、发布模式等。
您可以根据自己的需要选择合适的编译模式。
6. 调试项目编译完成后,就可以对项目进行调试了。
IAR 提供了多种调试工具,包括断点、单步执行、变量监视等。
您可以使用这些工具来查找和修复程序中的错误。
7. 编程项目调试完成后,就可以将程序编程到目标设备中了。
IAR 提供了多种编程工具,包括 JTAG、SWD、UART 等。
您可以根据自己的需要选择合适的编程方式。
IAR 的初始化流程相对简单,但它可以帮助您快速高效地开发嵌入式系统。
如果您是嵌入式系统开发的新手,那么强烈建议您学习和使用 IAR。
IAR 初始化流程图(仅供参考):[开始]-> **安装IAR**-> **创建项目**-> **添加源文件**-> **配置项目**-> **编译项目**-> **调试项目**-> **编程项目** [结束]。
IAR中头文件路径配置

IAR中头文件路径配置IAR中头文件路径配置Error[Cp001]: Copy protection check, No valid license found for this product [20]原因:安装的时候没有把注册机的0x.....字串的小写字母改为大写字母。
Warning[Pe001]: last line of file ends without a newline F:/emoTion/IAR/PK 升级/CC1110-8/main.c原因:在使用IAR时常常会弹出类似这样一个警告,其实只要在最后一行多加一个回车就不会再有这个警告了.Error[e72]: Segment BANK_RELAYS must be defined in a segment definition option (-Z, -b or -P) 原因:这是用730B编译的错误,可能是由于相对于目标工程版本过高的,后改用720H,没有发生错误。
Error[Pe005]: could not open source file "stdio.h"原因:头文件路径不对造成,改正的方法是在设置选项卡的C/C++ Compiler -> Preprocessor 选项里,将$TOOLKIT_DIR$/INC/CLIB/添到Include paths中。
Error[Pe005]: could not open source file "hal.h" C:/Users/user/Desktop/例子程序/无线通信综合测试/Library/cc2430/HAL/source/setTimer34Period.c原因:先检查C:/Users/user/Desktop/例子程序/无线通信综合测试/Library/cc2430/HAL/source/有无setTimer34Period.c这个文件,若有,则是因为IAR对中文路径支持不好的缘故,把这个工程复制到英文路径下编译就不会发生错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IAR编译环境的配置是相当重要的,没配置正确或者不符合自己的习惯的话,使用起来就会很麻烦。
下面我根据网上的经验和资料,以及自己摸索和大家共同探讨下IAR的配置。
我第一次打开IAR环境的时候,发现工作区有明显分层现象。
如图一所示
图一
这是我郁闷了好久,网上也不知道该如何搜索相关,只有自己慢慢找,最后还是找到了。
点击tools---options 就会弹出一个对话框来,如图二所示
图二
点editor选项卡,可以看到右边有很多选项,这些选项关系到使用的习惯和便捷性。
首先要谈到的是tab size,这个表示tab的字符宽度,默认值为8,indent size表示缩进的字符宽度,默认为2。
有人喜欢缩进为4,有人喜欢缩进为2,根据个人喜好,和程序的复杂度来选择,我一般选择2。
然后紧跟着,下面有个tab key funtion,说得是按下tab键所起到的作用,第一个表示插入制表符,第二个表示插入空格,一般选择插入空着(insert with space)这个选项。
为了解决图一的问题,就在show right margin(显示右边空白),处理方法很多,可以不选中,也可以选择Printing edge(显示到边缘),也可以把Columns(分栏)占的比例修改为100都可以。
另外,根据个人习惯,有人喜欢列出行号,有人不喜欢,这个可以在configure的下面show line numbers的选项,选中即可列出行号。
其他可以根据自己习惯设定,设定好了之后,如图三的效果,就看起来舒服多了。
图三
下面一个重点就是进行项目设定了,这个步骤非常重要,如果没有设置好,有可能编译不通过或者出错。
其实我们当初选择empty project模版的时候,配置都是属于默认的,但是有些关键配置还是需要自己手动配置的,虽然配置项目很多,根据网上经验和资料,以及个人理解,列举了几个关键选项来配置即可。
1、IAR EWARM允许为工作区中的任何一级目录和文件单独设置选项,但是用户必须首先为整个项目设置通用的选项General Option。
设置方法:选中工作区中的项目名new_project–Debug,按鼠标右键在弹出菜单中选择Options…或选择主菜单Project---Options…。
在弹出的Options窗口左边的目录(Category)中选择第一项General Options。
然后分别在:
??Target设置
??在Processor Variant框中选择Device。
并点击右边的器件选择按钮,选择芯片型号ST STM32F10x。
同时Endian mode选择Little,Stack align选择4byte。
其它选项采用默认值。
如图四所示
图四
2、C/C++编译器选项设置
在通用配置下面,有C/C++compiler,选中。
??然后配置Preprocessor
Preprocessor页面中,列有标准的include文件的目录。
如果用户的include文件不在标准目录下时,必须在Additional include directories输入包含该项目include文件的目录。
一个目录用一行描述,有多个目录时允许用多行。
在Preprocessor框中的Additional include directories(one per line)项目中输入“$TOOLKIT_DIR$\”,“$TOOLKIT_DIR$\LIBRARY\INC\”。
其他选项采用默认。
如图五所示
图五
3、Linker选项设置
3.1选中linker,然后在output选项卡下选择输出格式,此选项非常重要。
如果需要将输出文件送给一个调试器进行调试,则要求输出格式带有调试信息。
我们选择Debug information for C-SPY。
如图六所示
注意:I/O emulation modules指示连接器将stdin和stdout指向C-SPY的I/O窗
口的低级例程。
在没有真实硬件采用模拟仿真时应选择此项选项。
图六
3.2Extra Output设置
选择Generate extra output file。
输出格式选择simple-code和None,如图七所示
图七
3.3List设置
选择Generate linker listing和Segment map,允许生成存储器分配MAP文件,如图八所示
图八
3.4Config设置
打开Override default选项:??
如果在Flash中调试程序,设置lnkarm_flash.xcl;如果在RAM中调试程序,设置lnkarm_RAM.xcl;
哈哈,这2个选项在进行设置时,请确认电路板上的Boot0和Boot1引脚的跳线连接是否正确!如图九所示
图九4、Debugger选项设置
在Options窗口的目录Category中选择第七项Debugger 4.1setup设置
在driver那里选择调试工具等如图十所示
图十4.2download选项设置
1.已选择下载程序到Flash,可选:Verify download ??Use flash loader(s)(必须开启!)
2.已选择下载程序到RAM或使用模拟器:无需选择。
3.如果程序已下载到Flash:开启Suppress download 如图十一所示
图十一
以上设置基本上就完成了,然后保存项目,保存工作区,就可以进行编译和调试了。