IAR Embedded Workbench KickStart Release Notes
基于IAR-Embedded-Workbench-for-ARM-7.20的STM32F302-Nucleo板的开发环境的工程建立
基于IAR Embedded Workbench for ARM 7.20的STM32F302 Nucleo板的开发环境的工程建立1.安装IAR EWARM 7.20软件2.获得License , 得到IAR 的授权3.在电脑任意位置新建文件夹用来装工程文件,取名“F302_ Nuleo Demo”4.把“STM32_Nucleo_FW_V1.2.1”文件里的“Library”和“Utilities”文件夹拷贝到“F302_Nuleo Demo”文件夹下。
5.将文件“stm32f3xx_it.c”“stm32f3xx_it.h”“stm32f30x_conf.h”“system_stm32f30x.c”文件拷贝到“F302_ Nuleo Demo”文件夹下“stm32f3xx_it.c”在路径“Libraries\CMSIS\Device\ST\STM32F30x\Source\Templates”下“system_stm32f30x.c”在Libraries\CMSIS\Device\ST\STM32F30x\Source\T emplates”下“stm32f3xx_it.h”和“stm32f30x_conf.h”可以在固件库文件的官方例程中找到。
6.打开IAR软件7.新建一个工程,点击Project,选择Creat New Project,选择Empty project ,单击OK保存到刚刚新建的F302_Nucleo Demo文件夹下,文件命名为“F302_Nucleo Demo”8. A.建立好空的工程了,下面需要做的事情就是将必须的文件添加进去,对着对着Workspace下面的Files文件树里面的F302_Nucleo Demo右键,选择”add”“add group”,添加”CMSISI, EWARM , LIBRARY , User”这几个group,如下图:B.新建文件夹“main.c”、“main.h”,并将这两个文件保存到文件夹“F302_NucleoDemo”下,编辑文件“main.h”,在文件中添加如下代码段:#ifndef __MAIN_H#define __MAIN_H#include "stm32f3xx_nucleo.h"#endifC.然后分别在每个文件夹下添加需要的文件,需添加的文件如下:9. A.鼠标放在工程上单击右键,选择“option”,进行相关的设置:首先在General Option里面的Target 选择core为Cortex-M0,选择Device为ST STM32F302x8B.然后在C/C++ Compiler里面的Optimization里选择Level为High。
Atme AVR IAR Embedded Workbench IDE 说明书
AVR® IAR Embedded Workbench® IDE用户手册基于Atmel® 公司AVR® 微处理器目录第一部分产品介绍 (1)1.1产品介绍 (1)1.1.1嵌入式IAR Embedded Workbench IDE (1)1.1.2 IAR C-SPY 调试器 (3)1.1.3 IAR C-SPY 调试器系统 (5)1.1.4 IAR C/C++编译器 (8)1.1.5 IAR汇编器 (9)1.1.6 IAR XLINK连接器 (9)1.1.7 IAR XAR Library Builder库创建器和IAR XLIB Librarian库管理器 (10)1.2已安装文件 (11)1.2.1目录结构 (11)1.2.2文件类型 (14)1.2.3文档 (16)第二部分教程 (18)2.1创建一个应用工程 (18)2.1.1创建一个新工程 (18)2.1.2应用程序编译和连接 (23)2.2使用IAR C-SPYDebugger进行调试 (28)程序调试 (28)2.3 C与汇编混合模式 (36)2.3.1检查调用规则 (36)2.3.2在工程中添加一个汇编模块 (37)2.4使用C++ (38)创建一个C++应用程序 (39)2.5模拟一个中断 (41)2.5.1加入一个中断句柄 (42)2.5.2创建仿真环境 (43)2.5.3中断仿真 (48)2.5.4中断和断点中宏的使用 (49)2.6使用库模块 (50)使用库 (50)第一部分产品介绍AVR® IAR Embedded Workbench® IDE用户手册的这部分包括以下章节:z产品介绍z已安装文件1.1产品介绍嵌入式IAR Embedded Workbench®是一个非常有效的集成开发环境(IDE),它使用户充分有效地开发并管理嵌入式应用工程。
作为一个开发平台,它具备任何在用户每天的工作地方所想要的特性。
常见ARM编译器简介
常见ARM编译器简介ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等,目前世界上约有四十多家公司提供以上不同类别的产品。
用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本。
因此一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集成开发环境(IDE)一般来说是必不可少的,至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。
使用集成开发环境开发基于ARM的应用软件,包括编辑、编译、汇编、链接等工作全部在PC机上即可完成,调试工作则需要配合其他的模块或产品方可完成。
(一)SDTARM SDT的英文全称是ARM Software Development Kit,是ARM公司(为方便用户在ARM芯片上进行应用软件开发而推出的一整套集成开发工具。
ARM SDT经过ARM公司逐年的维护和更新,目前的最新版本是2.5.2,但从版本2.5.1开始,ARM公司宣布推出一套新的集成开发工具ARM ADS1.0,取ARM SDT而代之,今后将不会再看到ARM SDT的新版本。
ARM SDT由于价格适中,同时经过长期的推广和普及,目前拥有最广泛的ARM软件开发用户群体,也被相当多的ARM公司的第三方开发工具合作伙伴集成在自己的产品中,比如美国EPI公司的JEENI仿真器。
ARM SDT(以下关于ARM SDT的描述均是以版本 2.50为对象)可在Windows95、98、NT以及Solaris2.5/2.6、HP-UX10上运行,支持最高到ARM9(含ARM9)的所有ARM处理器芯片的开发,包括StrongARM。
ARM SDT包括一套完整的应用软件开发工具:*armcc ARM的C编译器,具有优化功能,兼容于ANSI C。
*tcc THUMB的C编译器,同样具有优化功能,兼容于ANSI C。
IAR Embedded Workbench for ARM 8.20安装使用图文教程
3.IAR Embedded Workbench for ARM 8.20注册
执行完后,再回到IAR License Manager for arm 8.20.1 界面 执行激活。如图
。
谢谢!Leabharlann 安装完成!手动破解注册,分享给大家,希望真正能帮助到有需求的朋友!
IAR Embedded Workbench for ARM 8.20安装注册图文教程安装步骤: 1.IAR Embedded Workbench for ARM 8.20下载 2.IAR Embedded Workbench for ARM 8.20安装 3.IAR Embedded Workbench for ARM 8.20注册、激活
IAR Embedded Workbench for ARM 8.20安装使用图文教 程
DrMeng 2017.12.17
IAR Embedded Workbench for ARM 8.20安装使用图文教程
导读:IAR Embedded Workbench for ARM 8.20(简称 IAR for 8.20)是一款强大的嵌入式开 发的软件并且含有IAR Embedded Workbench注册机 ,主要用于单片机开发是一套高度精密且 使用方便的嵌入式应用编程开发工具,那么要怎么破解安装呢?笔者这里重点给大家讲解如何
成都无线龙通讯 IAR Embedded Workbench叉编译器和调试器 说明书
IAR安装与使用IAR Embedded Workbench(简称EW)的C/C++交叉编译器和调试器是今天世界最完整的和最容易使用专业嵌入式应用开发工具。
EW对不同的微处理器提供一样直观用户界面。
EW今天已经支持35种以上的8位/16位32位ARM的微处理器结构。
EW包括:嵌入式C/C++优化编译器,汇编器,连接定位器,库管理员,编辑器,项目管理器和C-SPY调试器中。
使用IAR的编译器最优化最紧凑的代码,节省硬件资源,最大限度地降低产品成本,提高产品竞争力。
EWARM是IAR目前发展很快的产品,EWARM已经支持ARM7/9/10/11XSCALE,并且在同类产品中具有明显价格优势。
其编译器可以对一些SOC芯片进行专门的优化. 如Atmel,TI,ST,Philips。
除了EWARM标准版外,IAR公司还提供EWARM BL(256K)的版本,方便了不同层次客户的需求。
IAR System是嵌入式领域唯一能够提供这种解决方案的公司。
EW支持35种以上的8位/16位/32位的微处理器结构。
IAR Embedded Workbench集成的编译器主要产品特征:•高效PROMable代码•完全标准C兼容•内建对应芯片的程序速度和大小优化器•目标特性扩充•版本控制和扩展工具支持良好•便捷的中断处理和模拟•瓶颈性能分析•高效浮点支持•内存模式选择•工程中相对路径支持我们为什么要放弃使其他各种用免费的开发工具,而选择需要支付费用来购买IAR Systems 的开发工具?主要包括一下几点原因:由于IAR公司在微处理器C/C++编译器设计方面的丰富经验,目前没有任何一家公司的产品可以接近IAR公司针对8 位、16 位、32 位处理器生产的30多种不同C/C++编译器的水平。
经过反复实验证明,IAR Systems 的C/C++编译器可以生成高效可靠的可执行代码,并且应用程序规模越大,效果明显。
与其他的工具开发厂商相比,系统同时使用全局和针对具体芯片的优化技术。
简述iar工程的相关配置流程
简述iar工程的相关配置流程IAR工程是一种用于嵌入式系统开发的软件开发环境,提供了编译、调试、模拟等功能。
本文将简要介绍IAR工程的相关配置流程。
2. 新建工程:打开IAR Embedded Workbench软件,点击File菜单中的New Project选项,弹出新建项目对话框。
在对话框中选择合适的目录和文件名,并选择项目类型(如ARM、8051等),点击"OK"按钮即可创建一个新的工程。
3. 配置目标器件:在新建工程后,需要在Project选项卡中选择合适的目标器件。
点击"Browse"按钮,选择目标器件的特定型号和系列。
此时,IAR工程将自动配置编译器选项以匹配目标器件。
4. 配置编译器选项:在Project选项卡中,选择"Options"子菜单,弹出MCU Flash选项对话框。
在该对话框中,可以进行编译器选项的配置,包括生成方式、堆栈大小、优化级别等。
通过调整这些选项,可以对编译器进行优化,以满足具体要求。
5. 添加源文件:在IAR工程中,源文件可通过几种方式添加。
其中一种方式是通过右键点击工程文件夹,选择"Add files to project"选项,并选择要添加的源文件。
另一种方式是直接将源文件拖放到工程文件夹中。
此后,在工程文件夹中会显示已添加的源文件。
7. 配置调试器选项:在Project选项卡的Options子菜单中,选择Debugger,配置调试器选项。
这些选项包括连接类型、Baud Rate、调试器接口等。
根据具体情况进行配置,并点击"OK"按钮保存配置。
8. 编译工程:在进行配置之后,可以点击工具栏上的"Build"按钮进行编译。
编译器将从指定的目标文件夹中读取源文件,进行编译和链接操作,生成可执行的目标文件。
9.调试工程:通过调试器,可以在实际硬件上运行和调试目标代码。
IAR Embeded Workbench的C变量段分配
IAR Embeded Workbench的C变量段分配 -- Cortex-M3(LM3S618)开发环境为IAR Embeded Workbench IDE启动代码startup.c如下://******************************************************************* **********//// startup.c - Boot code for Stellaris.//// Copyright (c) 2005-2008 Luminary Micro, Inc. All rights reserved. //// Software License Agreement//// Luminary Micro, Inc. (LMI) is supplying this software for use solely and// exclusively on LMI's microcontroller products.//// The software is owned by LMI and/or its suppliers, and is protected under// applicable copyright laws. All rights are reserved. You may not combine // this software with "viral" open-source software in order to form a larger// program. Any use in violation of the foregoing restrictions may subject // the user to criminal sanctions under applicable laws, as well as to civil// liability for the breach of the terms and conditions of this license. //// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.//// This is part of revision 2752 of the Stellaris Peripheral Driver Library. ////******************************************************************* **********//******************************************************************* **********//// Enable the IAR extensions for this source file.////******************************************************************* **********#pragma language=extended//******************************************************************* **********//// Forward declaration of the default fault handlers.////******************************************************************* **********void ResetISR(void);static void NmiSR(void);static void FaultISR(void);static void IntDefaultHandler(void);//******************************************************************* **********//// The entry point for the application.////******************************************************************* **********extern int main(void);//******************************************************************* **********//// Reserve space for the system stack.////******************************************************************* **********#ifndef STACK_SIZE#define STACK_SIZE 256#endifstatic unsigned long pulStack[STACK_SIZE];//******************************************************************* **********//// A union that describes the entries of the vector table. The union is needed// since the first entry is the stack pointer and the remainder are function// pointers.////******************************************************************* **********typedef union{void (*pfnHandler)(void);unsigned long ulPtr;}uVectorEntry;//******************************************************************* **********//// The minimal vector table for a Cortex M3. Note that the proper constructs// must be placed on this to ensure that it ends up at physical address // 0x0000.0000.////******************************************************************* **********__root const uVectorEntry g_pfnVectors[] @ "INTVEC" ={{ .ulPtr = (unsigned long)pulStack + sizeof(pulStack) },// The initial stack pointerResetISR, // The reset handlerNmiSR, // The NMI handlerFaultISR, // The hard fault handler IntDefaultHandler, // The MPU fault handler IntDefaultHandler, // The bus fault handler IntDefaultHandler, // The usage fault handler 0, // Reserved0, // Reserved0, // Reserved0, // ReservedIntDefaultHandler, // SVCall handlerIntDefaultHandler, // Debug monitor handler 0, // ReservedIntDefaultHandler, // The PendSV handlerIntDefaultHandler, // The SysTick handlerIntDefaultHandler, // GPIO Port AIntDefaultHandler, // GPIO Port BIntDefaultHandler, // GPIO Port CIntDefaultHandler, // GPIO Port DIntDefaultHandler, // GPIO Port EIntDefaultHandler, // UART0 Rx and TxIntDefaultHandler, // UART1 Rx and TxIntDefaultHandler, // SSI Rx and TxIntDefaultHandler, // I2C Master and SlaveIntDefaultHandler, // PWM FaultIntDefaultHandler, // PWM Generator 0IntDefaultHandler, // PWM Generator 1IntDefaultHandler, // PWM Generator 2IntDefaultHandler, // Quadrature EncoderIntDefaultHandler, // ADC Sequence 0IntDefaultHandler, // ADC Sequence 1IntDefaultHandler, // ADC Sequence 2IntDefaultHandler, // ADC Sequence 3IntDefaultHandler, // Watchdog timerIntDefaultHandler, // Timer 0 subtimer AIntDefaultHandler, // Timer 0 subtimer BIntDefaultHandler, // Timer 1 subtimer AIntDefaultHandler, // Timer 1 subtimer BIntDefaultHandler, // Timer 2 subtimer AIntDefaultHandler, // Timer 2 subtimer BIntDefaultHandler, // Analog Comparator 0IntDefaultHandler, // Analog Comparator 1IntDefaultHandler, // Analog Comparator 2IntDefaultHandler, // System Control (PLL, OSC, BO)IntDefaultHandler, // FLASH ControlIntDefaultHandler, // GPIO Port FIntDefaultHandler, // GPIO Port GIntDefaultHandler, // GPIO Port HIntDefaultHandler, // UART2 Rx and TxIntDefaultHandler, // SSI1 Rx and TxIntDefaultHandler, // Timer 3 subtimer AIntDefaultHandler, // Timer 3 subtimer BIntDefaultHandler, // I2C1 Master and Slave IntDefaultHandler, // Quadrature Encoder 1IntDefaultHandler, // CAN0IntDefaultHandler, // CAN1IntDefaultHandler, // CAN2IntDefaultHandler, // EthernetIntDefaultHandler, // HibernateIntDefaultHandler, // USB0IntDefaultHandler, // PWM Generator 3IntDefaultHandler, // uDMA Software Transfer IntDefaultHandler // uDMA Error};//******************************************************************* **********//// The following are constructs created by the linker, indicating where the// the "data" and "bss" segments reside in memory. The initializers for the// for the "data" segment resides immediately following the "text" segment. ////******************************************************************* **********#pragma segment="DATA_ID"#pragma segment="DATA_I"#pragma segment="DATA_Z"//******************************************************************* **********//// This is the code that gets called when the processor first starts execution// following a reset event. Only the absolutely necessary set is performed, // after which the application supplied main() routine is called. Any fancy// actions (such as making decisions based on the reset cause register, and// resetting the bits in that register) are left solely in the hands of the// application.////******************************************************************* **********voidResetISR(void){unsigned long *pulSrc, *pulDest, *pulEnd;//// Copy the data segment initializers from flash to SRAM.//pulSrc = __segment_begin("DATA_ID");pulDest = __segment_begin("DATA_I");pulEnd = __segment_end("DATA_I");while(pulDest < pulEnd){*pulDest++ = *pulSrc++;}//// Zero fill the bss segment.//pulDest = __segment_begin("DATA_Z");pulEnd = __segment_end("DATA_Z");while(pulDest < pulEnd){*pulDest++ = 0;}//// Call the application's entry point.//main();}//******************************************************************* **********//// This is the code that gets called when the processor receives a NMI. This// simply enters an infinite loop, preserving the system state for examination// by a debugger.////******************************************************************* **********static voidNmiSR(void){//// Enter an infinite loop.//while(1){}}//******************************************************************* **********//// This is the code that gets called when the processor receives a fault // interrupt. This simply enters an infinite loop, preserving the system state// for examination by a debugger.////******************************************************************* **********static voidFaultISR(void){//// Enter an infinite loop.//while(1){}}//******************************************************************* **********//// This is the code that gets called when the processor receives an unexpected// interrupt. This simply enters an infinite loop, preserving the system state// for examination by a debugger.////******************************************************************* **********static voidIntDefaultHandler(void){//// Go into an infinite loop.//while(1){}}main.c源代码如下:#define MY_IAR_ICC //使用ICCARM编译器// 包含必要的头文件#include "my_lm3s618.h" //根据IAR提供的头文件iolm3s618.h和io_macros.h修改得到// 主函数(程序入口)int a[2];int b[2] = {10};__no_init int c;int d = 10;int main(void){int e[50] = {10};int f[100];}make后这些变量的段分配如下:变量所在段a[2] DATA_Zb[2] DATA_Ic DATA_Nd DATA_Ie[50] DATA_Zf[100] DATA_Z说明:1)DATA_Z 存储零初始化的静态和全局变量DATA_I 存储初始化的静态和全局变量DATA_N 存储由__no_init修饰的的静态和全局变量(关于各种类型段定义参考《ARM IAR C/C++ Compiler Reference Guide》P217)2)为什么e[50]和f[100]存储在DATA_Z中?e[50]和f[100]是在main.c中定义的局部变量,C编译器规定了局部变量从栈中分配空间。
IAR Embedded Workbench KickStart Release Notes
1CURRENT VERSION:IAR 4.11A/WIN,FET 5.12/WIN1.1KNOWN LIMITATIONSRelease NotesSLAA304I–June 2006–Revised June 2008Literature #slac050s.zip Executable file name FET_R512.exe HIL.dll version 1.2.4.0MSP430.dll version2.3.4.2JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM7Advanced Trigger of type Register does not work properly for MSP430X architectureDescriptionThe configuration of an Advanced Trigger of type Register [e.g.,to observe the Stack Pointer (SP)register value]does not show the expected behavior in the case when a device with the MSP430X architecture (e.g.,MSP430FG461x,MSP430F241x,and MSP430F261x)is the target of a debug session.WorkaroundNoneSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 1Submit Documentation Feedback2PRIOR VERSION:IAR 4.010E/WIN,FET 5.11/WIN2.1KNOWN LIMITATIONSPRIOR VERSION:IAR 4.010E/WIN,FET 5.11/WIN Literature #slac050r.zip Executable file name FET_R511.exe HIL.dll version 1.2.2.0MSP430.dll version2.3.3.0JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM7Advanced Trigger of type Register does not work properly for MSP430X architectureDescriptionThe configuration of an Advanced Trigger of type Register [e.g.,to observe the Stack Pointer (SP)register value]does not show the expected behavior in the case when a device with the MSP430X architecture (e.g.,MSP430FG461x,MSP430F241x,and MSP430F261x)is the target of a debug session.WorkaroundNoneCSPY1Integer values of C-type 'long'(32bit)are displayed incorrectly in Watch window for MSP430X architectureDescriptionThis affects 32-bit values that are held in two CPU registers;e.g.,a value of 0x00123456is stored in R14and R15.The lower word of the 32-bit value is stored as R14=0x3456,and the higher word is stored as R15=0x0012.The C-Spy Watch window shows a value of 0x12003456.This is a problem with the Watch window only–the program code produces the correct results.It is recommended not to change the dedicated 32-bit value via the Watch window,as this can cause unpredictable behavior.This limitation is only valid when a device with the MSP430X architecture is the target of a debug session.WorkaroundNoneIAR Embedded Workbench KickStart2SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback3PRIOR VERSION:IAR 4.09A/WIN,FET 5.10/WIN3.1KNOWN LIMITATIONS PRIOR VERSION:IAR 4.09A/WIN,FET 5.10/WINLiterature #slac050q.zip Executable file name FET_R510.exe HIL.dll version 1.2.2.0MSP430.dll version2.3.1.0JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM7Advanced Trigger of type Register does not work properly for MSP430X architectureDescriptionThe configuration of an Advanced Trigger of type Register [e.g.,to observe the Stack Pointer (SP)register value]does not show the expected behavior in the case where a device with the MSP430X architecture (e.g.,MSP430FG461x,MSP430F241x,and MSP430F261x)is the target of a debug session.WorkaroundNoneIDE1Key bindings are deletedDescriptionIf this version of the IAR Embedded Workbench (4.09A/WIN)is installed in the same subdirectory where a previous version (e.g.,3.42A/WIN)is already installed,all key bindings [e.g.,debug hotkeys F5(Go),F10(Step Over),F11(Step Into)]are deleted in both versions.WorkaroundSelect in main menu Tools ->Options...->Key Bindings and push the 'Reset All'button in each IAR installation.CSPY1Integer values of C-type 'long'(32bit)are displayed incorrectly in Watch window for MSP430X architectureDescriptionThis affects 32-bit values that are held in two CPU registers;e.g.,a value of 0x00123456is stored in R14and R15.The lower word of the 32-bit value is stored as R14=0x3456,and the higher word is stored as R15=0x0012.The C-Spy Watch window shows a value of 0x12003456.This is a problem with the Watch window only–the program code produces the correct results.It is recommended not to change the dedicated 32-bit value via the Watch window,as this can cause unpredictable behavior.This limitation is only valid in the case where a device with the MSP430X architecture is the target of a debug session.WorkaroundNoneDEVICE3MSP430F2616and MSP430F2617devices are not correctly recognized by debuggerDescriptionWhen starting a debug session the Emulator shows a warning that "Chosen derivative (MSP430F2616)and actual hardware (MSP430F2619)do not match."for a project configured for MSP430F2616and "Chosen derivative (MSP430F2617)and actual hardware (MSP430F2618)do not match."for a project configured for MSP430F2617.WorkaroundMessage can be ignored.Click 'Yes'to continue download and start debug session.SLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart3Submit Documentation Feedback4PRIOR VERSION:IAR 3.42A/WIN,FET 4.63/WIN4.1KNOWN LIMITATIONSPRIOR VERSION:IAR 3.42A/WIN,FET 4.63/WIN Literature #slac050p.zip Executable file name FET_R463.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.10.1JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM6Emulator Clock Control is not active by defaultDescription The "Emulator ->Clock Control"feature is not enabled by default when the C-Spy debugger starts.WorkaroundOpen "Emulator ->Clock Control"dialog box and close it again by clicking on the OK button.Emulation clock control is now activated.IAR Embedded Workbench KickStart4SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback5PRIOR VERSION:IAR 3.42A/WIN,FET 4.62/WIN5.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.42A/WIN,FET 4.62/WINLiterature #slac050o.zip Executable file name FET_R462.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.10.0DEVICE2Support for MSP430F11x1A device derivatives Revision JDescriptionSilicon revision J of MSP430F11x1A devices is not recognized correctly by the Emulator driver.It is not possible to download and debug program code on this dedicated silicon revision.WorkaroundNoneJTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 5Submit Documentation Feedback6PRIOR VERSION:IAR 3.42A/WIN,FET 4.61/WIN6.1KNOWN LIMITATIONSPRIOR VERSION:IAR 3.42A/WIN,FET 4.61/WIN Literature #slac050n.zip Executable file name FET_R461.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.9.0HEADERFILES1Definitions in generic header files msp430.h and io430.hDescription•Both files do not include any definitions for MSP430F161x devices.•Both files contain wrong definitions for FE,FG,and FW devices (exclusive MSP430FG461x devices).•The file msp430.h includes io430x22x2.h instead of msp430x22x2.h for MSP430F22x2devices.WorkaroundUse device-specific header files rather than the generic header files or edit generic header files accordingly.CONFIGFILES1RAM size definition in lnk430f223x.xcl linker command filesDescriptionA value of 0x02FF is specified for RAM segments (DATA16_I,DATA16_N,DATA16_N,CSTACK,HEAP),which corresponds to a RAM size of 256bytes.Actually,MSP430F223x devices have 512bytes of RAM,which results in a value of 0x03FF.WorkaroundEdit linker command files accordingly.CONFIGFILES2RAM size definition in lnk430f23x0.xcl linker command filesDescription•RAM segments definition in lnk430f2330.xcl should be 0x05FF instead of 0x02FF.•RAM segments definition in lnk430f2350.xcl should be 0x09FF instead of 0x03FF.WorkaroundEdit linker command files accordingly.JTAG1JTAG security fuse blowing for MSP430F23x0devicesDescription It is not possible to burn the JTAG security fuse of MSP430F23x0devices.WorkaroundNoneJTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneIAR Embedded Workbench KickStart6SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback7PRIOR VERSION:IAR 3.42A/WIN,FET 4.60/WIN7.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.42A/WIN,FET 4.60/WINLiterature #slac050m.zip Executable file name FET_R460.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.8.1DEVICE1Support for MSP430F22x2device derivativesDescriptionMSP430F22x2devices are recognized by the Emulator driver as the corresponding MSP430F22x4derivative.This results in an Emulator warning that the "Chosen derivative (MSP430F22x2)and actual hardware (MSP430F22x4)do not match".WorkaroundThe Emulator warning can be ignored.MSP430F22x2and MSP430F22x4derivatives are identical in terms of memory configuration.No issue is caused by ignoring the Emulator warning.SLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 7Submit Documentation Feedback8PRIOR VERSION:IAR 3.41G/WIN,FET 4.53/WIN8.1KNOWN LIMITATIONSPRIOR VERSION:IAR 3.41G/WIN,FET 4.53/WIN Literature #slac050l.zip Executable file name FET_R453.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.8.0EEM5Enhanced Emulation Module Advanced TriggerDescription Changing the Action in the Advanced Trigger dialog sometimes has no effect,especially with triggers of type Register.WorkaroundDisable/enable the according trigger by unchecking/checking the checkbox in the global Breakpoints window.IAR Embedded Workbench KickStart8SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback9PRIOR VERSION:IAR 3.41A/WIN,FET 4.52/WIN9.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.41A/WIN,FET 4.52/WINLiterature #slac050k.zip Executable file name FET_R452.exe HIL.dll version 1.2.1.0MSP430.dll version2.1.7.0EEM1Enhanced Emulation Module Breakpoint CombinerDescription It is not possible to combine an Advanced Trigger of type Register with any other configured trigger.WorkaroundNoneEEM2Enhanced Emulation Module Sequencer ControlDescription Opening the Sequencer Control window prevents further debugging.The workbench hangs up.WorkaroundNoneSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 9Submit Documentation Feedback10PRIOR VERSION:IAR 3.40B/WIN,FET 4.51/WIN10.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.40B/WIN,FET 4.51/WIN Literature #slac050j.zip Executable file name FET_R451.exe HIL.dll version 1.2.1.0MSP430.dll version2.1.6.0EEM1Enhanced Emulation Module Breakpoint CombinerDescription It is not possible to combine an Advanced Trigger of type Register with any other configured trigger.WorkaroundNoneEEM2Enhanced Emulation Module Sequencer ControlDescription Opening the Sequencer Control window prevents further debugging.The workbench hangs up.WorkaroundNoneEEM3Enhanced Emulation Module Clock ControlDescription Any changes made in the Clock Control window have no effect and are discarded after clicking the "OK"button.WorkaroundNone EEM4BreakpointsDescription Advanced Triggers of type Register where the specified register is any other CPU register than the SP (Stack Pointer)have no effect.WorkaroundNoneFLASH1Debugger Flash ProgrammingDescription It is not possible to link any code/data into Information Memory segments B,C,and D of MSP430F2xx devices without erasing DCO calibration data in segment A.WorkaroundNoneIAR Embedded Workbench KickStart10SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback11VERSION MATRIX:KNOWN LIMITATIONS VERSION MATRIX:KNOWN LIMITATIONSLiterature #H E A D E R F I L E S 1C O N F I G F I L E S 1C O N F I G F I L E S 2J T A G 1J T A G 2D E V I C E 1D E V I C E 2D E V I C E 3E E M 1E E M 2E E M 3E E M 4E E M 5E E M 6E E M 7F L A S H 1I D E 1C S P Y 1 slac050s.zip üüslac050r.zip üüüslac050q.zip üüüüüslac050p.zip üüüslac050o.zip üüüüslac050n.zip üüüüüüüslac050m.zip üüüüslac050l.zip üüüslac050k.zip üüüüslac050j.zipüüüüüüüSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart11Submit Documentation FeedbackIMPORTANT NOTICETexas Instruments Incorporated and its subsidiaries(TI)reserve the right to make corrections,modifications,enhancements,improvements, and other changes to its products and services at any time and to discontinue any product or service without notice.Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete.All products are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment.TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s standard warranty.Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty.Except where mandated by government requirements,testing of all parameters of each product is not necessarily performed.TI assumes no liability for applications assistance or customer product design.Customers are responsible for their products and applications using TI components.To minimize the risks associated with customer products and applications,customers should provide adequate design and operating safeguards.TI does not warrant or represent that any license,either express or implied,is granted under any TI patent right,copyright,mask work right, or other TI intellectual property right relating to any combination,machine,or process in which TI products or services are rmation published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement e of such information may require a license from a third party under the patents or other intellectual property of the third party,or a license from TI under the patents or other intellectual property of TI.Reproduction of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties,conditions,limitations,and notices.Reproduction of this information with alteration is an unfair and deceptive business practice.TI is not responsible or liable for such altered rmation of third parties may be subject to additional restrictions.Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice.TI is not responsible or liable for any such statements.TI products are not authorized for use in safety-critical applications(such as life support)where a failure of the TI product would reasonably be expected to cause severe personal injury or death,unless officers of the parties have executed an agreement specifically governing such use.Buyers represent that they have all necessary expertise in the safety and regulatory ramifications of their applications,and acknowledge and agree that they are solely responsible for all legal,regulatory and safety-related requirements concerning their products and any use of TI products in such safety-critical applications,notwithstanding any applications-related information or support that may be provided by TI.Further,Buyers must fully indemnify TI and its representatives against any damages arising out of the use of TI products in such safety-critical applications.TI products are neither designed nor intended for use in military/aerospace applications or environments unless the TI products are specifically designated by TI as military-grade or"enhanced plastic."Only products designated by TI as military-grade meet military specifications.Buyers acknowledge and agree that any such use of TI products which TI has not designated as military-grade is solely at the Buyer's risk,and that they are solely responsible for compliance with all legal and regulatory requirements in connection with such use. TI products are neither designed nor intended for use in automotive applications or environments unless the specific TI products are designated by TI as compliant with ISO/TS16949requirements.Buyers acknowledge and agree that,if they use any non-designated products in automotive applications,TI will not be responsible for any failure to meet such requirements.Following are URLs where you can obtain information on other Texas Instruments products and application solutions:Products ApplicationsAmplifiers AudioData Converters AutomotiveDSP BroadbandClocks and Timers Digital ControlInterface MedicalLogic MilitaryPower Mgmt Optical NetworkingMicrocontrollers SecurityRFID TelephonyRF/IF and ZigBee®Solutions Video&ImagingWirelessMailing Address:Texas Instruments,Post Office Box655303,Dallas,Texas75265Copyright©2008,Texas Instruments Incorporated。
IAR_Embedded_Workbench用户指南
2
希望在真实硬件上以 release 配置运行例子,就必须提供与硬件相适配的 write 函数。 ④ 保存工作区。先选择主菜单 File > Save Workspace,浏览并选择 My projects 目录。然 将工作区取名为 目录下将生成一个 输进 File name 输入框,按保存按钮退出。这时在 My projects 文件, 该文件中保存了用户添加到 工作区中的
文件头——显示编译器的版本信息,列表文件生成时间,source 文件、list 文件和 object 文件的名字和路径,编译命令行及选件等信息。
z
文件体——显示为每条源语句生成的汇编代码和二进制代码, 以及变量如何被分配 到不同的段。
z
文件尾——显示所需的堆栈、 程序代码以及数据存储器的总量, 同时报告错误和警 告信息。
Obj 目录下存放 Compiler 和 Assembler 生成的目标文件。这些文件的后缀为 可以用作 IAR XLINK 连接器的输入文件。
z
Exe 目录下存放可执行文件。这些文件的执行连接处理之前这个目录是空的。
点击 project1 – Debug 前面的+号将目录展开。你可以从自动生成的 Output 目录中看
图 6. Build 窗口中的编译处理消息 9 用同样的方法编译 tutor.c。 编译完成后在 My projects 目录下将生成一批新子目录。因为我们在建立新项目时选择 Debug 配置,所以在 My projects 目录下自动生成一个 Debug 子目录。Debug 子目录下又 包含另 3 个子目录,名字分别为 List、Obj、Exe。它们的用途如下: z z List 目录存下放列表文件。列表文件的后缀是 。 ,
mps430单片机开发环境IAR Embedded Workbench使用教程
2.2 开发环境(实验1)MSP430的IAR最新版本软件按照默认安装之后,由程序组的IAR Systems――IAR Embedded Workbench KickStart for MSP430 V3 ――IAR Embedded Workbench可以进入IAR 的MSP430开发环境(见图2.2.1)。
图2.2.1 进入开发环境的方法第一次进入开发环境之后的界面如图 2.2.2。
这时,需要添加一个工作区,以及在工作区中添加一个项目,然后在项目中添加自己的程序代码。
最后编译,调试。
下面将分别讲述如何操作。
图2.2.2 第一次进入开发环境的界面添加一个新的工作区的方法为:点击菜单:File――New――Workspace,见图2.2.3。
图2.2.3 添加新的工作区屏幕将出现新的工作区(如图2.2.4),这时工作区内没有任何内容,需要添加一个用户项目。
具体方法见图 2.2.5。
图示为添加新的项目,也可以打开以前的项目(使用菜单中下面条目)。
按添加新项目之后,出现图2.2.6所示的界面,按ok即可。
之后需要填写项目名称,以及存放的位置,见图 2.2.7,注意记住自己输入的项目名称以及位置。
生成新项目之后,在工作区中显示出来,见图2.2.8。
如果此时关闭IAR开发环境,会提示是否保存工作区文件以及项目文件,同时要求输入工作区名以及路径。
如果再次打开IAR开发环境,会提示是否打开以前编辑过(或已经存在)的工作区文件,如图2.2.9所示。
这时点击test文件名,再点击“open”,即可进入图2.2.8所示的刚才正在编辑的项目工程文件“test项目”。
图2.2.4 刚添加没有项目的工作区图2.2.5 在工作区添加项目图2.2.6 在工作区添加项目图2.2.7 输入的项目名称以及存放位置图2.2.8 生成新项目之后,在工作区中显示出来图2.2.9 进入开发环境时提示是否打开已经存在的工作区文件此时的项目文件为空的项目,并没有任何实质内容,需要将所编写的源文件添加到这个空的项目中。
IAR_Embedded_Workbench用户指南
图 7. 编译处理后的文件结构
2.查看编译器列表文件
现在我们通过改变编译器选件中的优化级别(Optimization)来观察 list 文件是如何自
动更新生成的代码量的。
① list 文件的结构
双击 Workspace 窗口中的
,打开 list 文件,它包含以下信息:
z 文件头——显示编译器的版本信息,列表文件生成时间,source 文件、list 文件和
IAR Systems公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.30,并提供一个32k代码限制、但没有时间限制的免费评估版。有兴趣的朋友可以到IAR 公司的网站/ewarm 或南京万利电子的网站 (本地网站) 去寻找和下载。
图 2. Workspace 窗口
IAR EWARM 提供两种缺省的项目生成配置,即 Debug 和 Release。本例在
Workspace 窗口顶部的下拉菜单中选取 Debug。现在 My projects 目录下已生成一个
文件。该文件中包含与
项目设置有关的信息,如 build 选件等。
项目名后缀上的*号表示该工作区有改变但还没有被保存。
出 Options 对话窗口,见图 9。在左边的 Category 中选择 Linker,显示 IAR XLINK 的 各选件页面。
7
图 9. XLINK 参数选件窗口 本例全部采用缺省的连接处理选件。但是仍需要强调一下输出文件格式和 Linker 命令 行文件的选择方法。 z 输出格式 选择合适的输出格式十分重要。你可能需要将输出文件送给一个调试器进行调试,这 时就要求输出格式带有调试信息。本例采用适合 C-SPY 调试器的缺省输出选件,它们是 Debug information for C-SPY、With runtime control modules 和 With I/O emulation modules。指示需要连接将 stdin 和 stdout 指向 C-SPY 的 I/O 窗口的低级例程。 如果用户希望把应用下载到一个 PROM 编程器时,则其输出格式不需要带调试信息, 如 Intel-hex 或 Motorola S-records。 在 list 页面中选择 Generate Linker listing 和 Segment map(见图 10)。允许生成存 储器分配 MAP 文件。 注意:本例连接器命令文件中的定义不与任何特定的硬件相关联。EWARM 提供的连接器 命令文件模板都可以在模拟器(simulator)中使用。但是如果要把它们用于目标系统时必 须与实际的硬件存储器分布相适配。用户可以从 src\ examples 目录中找到与评估板相关的 连接器命令文件。 z 连接器命令文件 在连接器命令文件中,用于段(segment)控制的 XLINK 命令行是用来放置段的。熟 悉连接器命令文件和段的放置十分重要。用户可以从
IAR Embedded Workbench设置
9G-STM32 EWARM开发过程简介一,准备EWARM+JLINK+STM32软件包1,在/down/view.asp?id=83下载IAR Embedded Workbench for ARM v5.20版本EWARM-EV-WEB-520.rar/MCU123_temp_0080309@/arm/EWARM-EV-WEB-5 20.rar(注册机自行查找,安装过程略)2,在/download_jlink.html下载Software and documentation pack V4.04a软件Setup_JLinkARM_V404a.zip/pub/jlink/Setup_JLinkARM_V404a.zip(JLINK自行购买,安装过程略)3,在/mcu/devicedocs-STM32F103T8-110.html 下载ARM-based 32-bit MCU STM32F10xxx standard peripheral librarystm32f10x_stdperiph_lib_v3.0.0.zip/stonline/products/support/micro/files/stm32f10x_stdperip h_lib_v3.0.0.zip二,建立STM32 LCCD工程1,解压stm32f10x_stdperiph_lib_v3.0.0.zip软件包,把其中的“Libraries”和“Project”文件夹复制到“D:\works\lccd-1.0.0\”,在“D:\works\lccd-1.0.0\”下建立“Drivers”、“Linker”、“Include”和“Source”空文件夹,在“D:\works\lccd-1.0.0\Project”下建立“Stm32f103”空文件夹,把“Project\Template”下的C文件复制到“Source”和H 文件复制到“Include”,把“Project\Template\EWARMv5”下的所有ICF文件复制到“Linker”;2,在EWARM菜单中“Project”->“Create New Project”打开“Create New Project”窗口,点击“OK”打开“另存为”窗口,选择项目工程存储路径“D:\works\lccd-1.0.0\Project\Stm32f103\”填写项目文件名“lccd.ewp",在菜单中“File”->“Save All”打开“Save Workspace As”窗口,填写工作环境文件名“lccd.eww”;3,在EWARM的左面“Workspace”窗口下面的“Files”空白部分右击鼠标,选择“Add”->“Add Group”出现““Add Group - lccd”窗口,在“Group name”中填上“CMSIS”,同样方法建立“USER”“BOOT”“DRV”“INC”“LIB”等文件组后点击“Save All”快捷键;4,在EWARM的左面“Workspace”窗口下面的“CMSIS”上右击鼠标,选择“Add”->“Add Files”出现““Add Files - CMSIS”窗口,选择打开“D:\works\lccd-1.0.0\Libraries\CMSIS\Core\CM3”文件夹下的“core_cm3.c”和“system_stm32f10x.c”文件;5,在EWARM的左面“Workspace”窗口下面的“BOOT”上右击鼠标,选择“Add”->“Add Files”出现““Add Files - BOOT”窗口,选择打开“D:\works\lccd-1.0.0\Libraries\CMSIS\Core\CM3\startup\iar”文件夹下的“startup_stm32f10x_md.s”文件;6,在EWARM的左面“Workspace”窗口下面的“LIB”上右击鼠标,选择“Add”->“Add Files”出现““Add Files - LIB”窗口,选择打开“D:\works\lccd-1.0.0\Libraries\STM32F10x_StdPeriph_Driver\src”文件夹下的“stm32f10x_gpio.c”等所有C文件;7,在EWARM的左面“Workspace”窗口下面的“INC”上右击鼠标,选择“Add”->“Add Files”出现““Add Files - INC”窗口,选择打开“D:\works\lccd-1.0.0\Include”文件夹下的所有H文件;8,在EWARM的左面“Workspace”窗口下面的“USER”上右击鼠标,选择“Add”->“Add Files”出现““Add Files - USER ”窗口,选择打开“D:\works\lccd-1.0.0\Source”文件夹下的所有C文件,点击“Save All”快捷键;三,配置STM32 LCCD工程在EWARM的左面“Workspace”窗口下面的“Files”的“lccd - Debug”左击鼠标,选择“Project”->“Options”出现“Options for node "lccd"”窗口;1,在左面“Category:”中选择上“General Options”,在“Target”->“Processor Variant”->“Device”中选择“ST STM32F10xx8”,在“Library Configuration”->“Library”中选择“FULL”;2,在左面“Category:”中选择上“C/C++ Complier”,在“Preprocessor”->“Additional include directories:”中填上下面几行:$PROJ_DIR$\..\..\Include$PROJ_DIR$\..\..\Libraries\CMSIS\Core\CM3$PROJ_DIR$\..\..\Libraries\STM32F10x_StdPeriph_Driver\inc在“Preprocessor”->“Define symbols:”中填上下面几行:USE_STDPERIPH_DRIVERSTM32F10X_MDUSE_STM3210B_EVAL(我暂时不用)3,在左面“Category:”中选择上“Output Converter”,在“Output”中勾选“Generate addition output”并在“Output format:”中选择“binary”,在“Output”->“Output file”中勾选“override default”并填写上目标码文件名:lccd-debug-1.0.0.bin;4,在左面“Category:”中选择上“Linker”,在“Config”->“Linker configuration file”中勾选“override default”,在下面填上:“$PROJ_DIR$\..\..\Linker\stm32f10x_flash.icf”,在“List”中勾选“Generate linker map file”;5,在左面“Category:”中选择上“Debugger”,在“Setup”->“Driver”中选择“J-link/J-trace”,在“Download”勾选择“Use flash loader”;6,在左面“Category:”中选择上“J-link/J-trace”,在“Setup”->“JTAG/SWD speed”中选择“Fixed”并填上“4000”,在“Connection”->“Interface”中选择“SWD”,点击“Save All”快捷键;7,在EWARM的左面“Workspace”窗口下选择“Release”,然后可以对“lccd - Release”左击鼠标,选择“Project”->“Options”出现“Options fornode "lccd"”窗口,做类似上面“lccd - Debug”的配置,注意不选择调试信息及目标友文件名为lccd-release-1.0.0.bin;四,调试STM32 LCCD工程1,在EWARM菜单中“Project”->“Make”打开编译工程命令;2,在EWARM菜单中“Project”->“Download and Debug”打开下载调试命令;3,在EWARM菜单中“Debug”->“Go”打开全速运行命令;4,其它调试命令请自行尝试;五,修改STM32 LCCD工程1,移植USART的PRINTF应用A,把D:\works\lccd-1.0.0\Include\stm32f10x_conf.h的第46行的注释打开;B,把D:\works\lccd-1.0.0\Project\Examples\USART\Printf\platform_config.h 复制到D:\works\lccd-1.0.0\Include\目录;C,把D:\works\lccd-1.0.0\Project\Examples\USART\Printf\main.c 复制到D:\works\lccd-1.0.0\Source;D,编译调试即可以在UART1看到115200 8N1的字符“USART Printf Example: retarget the C library printf function to the USART”Category ->General OptionsCategory -> C/C++ Compiler$PROJ_DIR$\boot$PROJ_DIR$\interrupt$PROJ_DIR$\src$PROJ_DIR$\library\inc$PROJ_DIR$\user$PROJ_DIR$\user\Common $PROJ_DIR$\user\STM3210C_EV AL $PROJ_DIR$\cmsisCategory -> LinkerCategory -> DebugCategory -> J-Link/J-Trace。
78K IAR Embedded Workbench
78K IAR Embedded Workbench®Migration Guidefor NEC Electronics’78K0 and 78K0S Microcontroller SubfamiliesCOPYRIGHT NOTICE© Copyright 1997–2005 IAR Systems. All rights reserved.No part of this document may be reproduced without the prior written consent of IAR Systems. The software described in this document is furnished under a license and may only be used or copied in accordance with the terms of such a license. DISCLAIMERThe information in this document is subject to change without notice and does not represent a commitment on any part of IAR Systems. While the information contained herein is assumed to be accurate, IAR Systems assumes no responsibility for any errors or omissions.In no event shall IAR Systems, its employees, its contractors, or the authors of this document be liable for special, direct, indirect, or consequential damage, losses, costs, charges, claims, demands, claim for lost profits, fees, or expenses of any nature or kind. T RADEMARKSIAR Systems, From Idea to Target, IAR Embedded Workbench, visualSTATE, IAR MakeApp and C-SPY are trademarks owned by IAR Systems AB.Microsoft and Windows are registered trademarks of Microsoft Corporation.All other product names are trademarks or registered trademarks of their respective owners.EDITION NOTICESecond edition: May 2005Part number: M78K-2This guide applies to version 4.x of the 78K IAR Embedded Workbench®.ContentsMigrating to the 78K IAR Embedded Workbench version 4.x .1Key advantages (1)The migration process (2)Project file and project setup (2)C source code and compiler considerations (3)Assembler considerations (4)Runtime library, runtime environment, and object fileconsiderations (4)Compiling and linking with the DLIB runtime library (4)Program entry (5)System initialization—Cstartup (6)Migrating from CLIB to DLIB (6)Device-specific header files (6)Calling convention (7)Object file considerations (7)Compiler options (8)Migrating project options (8)Filenames (11)List files (12)Extended keywords (12)SFR (13)Bit variables (13)Storage modifiers (14)Interrupt functions and vectors (15)Absolute located variables (16)Pragma directives (16)Intrinsic functions (18)Segments (19)Linker command file considerations (20)Other changes (24)Object file format (24)iii78K IAR Embedded Workbench®Migration Guide Predefined symbols (24)Nested comments (24)Sizeof in preprocessor directives (25)ivMigrating to the 78K IAREmbedded Workbenchversion 4.xThis guide gives hints for porting your application code and projects to the78K IAR Embedded Workbench IDE version 4.x.C source code that was originally written for the IAR 78000 C Compilerversion 3.x can be used also with the new 78K IAR C/C++ Compiler version4.x. However, some modifications may be required.This guide presents the major differences between the 78K IAR EmbeddedWorkbench version 3.x and the 78K IAR Embedded Workbench version 4.x,and describes the migration considerations.Key advantagesThis section lists the major differences between the IAR 78000 C Compiler version 3.xand the 78K IAR C/C++ Compiler version 4.x. Hereafter, the two compiler versions arereferred to as version 3.x and version 4.x, respectively.●The most obvious difference is that support for C++ has become available.●Moreover, 4.x adheres more strictly to the ISO/ANSI C standard; for example, it ispossible to use pragma directives instead of extended keywords for defining specialfunction registers (SFRs).●The checking of data types adheres more strictly to the ISO/ANSI C standard,compared to version 3.x. This helps you to identify and correct problems in thecode, which improves the quality of the object code.●Efficient window management through dockable windows optionally organized intab groups.●Source browser with a catalog of functions, classes, variables, et cetera, for a quicknavigation to symbol definitions.●Template projects to get a project that links and runs out of the box for a smoothdevelopment start up.●Batch build with ordered lists of configurations to build.●Improved context-sensitive help with reference information for windows, dialogboxes, and C/C++ DLIB library functions.1The migration process78K IAR Embedded Workbench®Migration Guide ●Easy configuration of the C/C++ libraries.●Smart display of STL containers at debugging●Auto-display debugger watch window● A broad range of small feature enhancements to improve the look and feel. Note:It is important to be aware of the fact that code written for version 3.x may generate warnings or errors in version 4.x.The migration processIn short, to migrate to version 4.x, consider the following:●The project file and project setup● C source code and compiler considerations●Assembler considerations●Runtime environment, runtime library, and object file considerations.To migrate your old project, follow the described migration process. Note that not allitems in the described migration process may be relevant for your project. Considercarefully what actions are needed in your case.Project file and project setupIf you are using the IAR Embedded Workbench IDE, follow these steps to verify thatyour project file has been properly converted:1Start your new version of the 78K IAR Embedded Workbench and create a newworkspace by choosing File>New and then Workspace.2Choose Project>Add Existing Project to insert your old project into the workspace.This step will create two new project files with the same name as the old file, but withthe extensions ewp and ewd. The ewp file contains all settings required to build theapplication, while the ewd file contains all settings related to the debugger. The oldproject file will remain untouched.3It is strongly recommended that you verify that your options have been setup correctly.To generate a text file with the command line equivalents of the project options in yourold project, see Migrating project options, page 8.Also, set any new options.4If you have your own linker command file, compare this file with the original file in theold installation and make the required changes in a copy of the corresponding file inthe new installation. For information about changes related to segments, see Segments,page 19.2Migrating to the 78K IAR Embedded Workbench version 4.x 3C source code and compiler considerationsIn short, the process of migrating from version 3.x to version 4.x involves the followingsteps:1Replace or modify extended keywords according to the description in the sectionExtended keywords , page 12. The include file for the old intrinsic functions, in78k.h ,defines some of the old extended keywords and can be used if you want to keep the oldsyntax. However, the syntax of the keywords for interrupts must be migrated.2Replace or modify pragma directives according to the section Pragma directives , page16.3Make sure not to use nested comments in your source code. In version 4.x , nestedcomments are never allowed. For more information, see Nested comments , page 24.4The new compiler uses a different C parser and a large number of new optimizationshave been added. Depending on your old source code, this might require you to modifyyour source code. One example of this is a simple delay loop, such as:i = 50000;do {i--;}while (i-- != 0);This code will be removed by the optimizer, unless you declare the variable i asvolatile .In order to produce more efficient code, the compiler performs transformations like, forexample, removing redundant calculations, replacing division by shift and removinguseless calculations. Code that the compiler considers as not useful is removed and thismay cause unexpected effects as in this example.5Replace or modify intrinsic functions according to the section Intrinsic functions , page18.6Version 4.x will by default not accept preprocessor expressions containing any of thefollowing:●Floating-point expressions●Basic type names andsizeof●All symbol names (including typedefs and variables).With the option --migration_preprocessor_extensions , version 4.x will acceptsuch non-standard expressions. For details about this option, see the 78K IAR C/C++Compiler Reference Guide .4Assembler considerations78K IAR Embedded Workbench®Migration GuideAssembler considerations●If your application is written partly in assembler and partly in C, and if you have used any of the memory segments specific to version 3.x in assembler source code, you must replace all old segment names with new segment names. For further details, see the section Segments , page 19.●The old assembler environment variables have changed:●If your application is written entirely in assembler, you should not include a library in your application. To exclude the library from the build, choose Project>Options , select the General Options category and click the Library Configuration tab. Select None from the Library drop-down list.●The RSEG directive is no longer allowed in MACRO definitions, because it causes calculations of relative jump distances to become incorrect.Runtime library, runtime environment, and object file considerationsIn version 4.x , two sets of runtime libraries are provided—the IAR DLIB Library andthe IAR CLIB Library. CLIB corresponds to the runtime library provided with version3.x , and it can be used in the same way as before.For information about how to migrate from the CLIB library to the DLIB library, seeMigrating from CLIB to DLIB , page 6. For more information about the two libraries, andthe runtime environment they provide see the 78K IAR C/C++ Compiler ReferenceGuide .To build code produced by version 4.x of the compiler, you must use the runtimeenvironment components it provides. For information about how to link object codeproduced using version 4.x with components provided with version 3.x , see Object fileconsiderations , page 7.COMPILING AND LINKING WITH THE DLIB RUNTIMELIBRARYIn earlier versions, the choice of runtime library did not have any impact on thecompilation. In 78K IAR Embedded Workbench version 4.x, this has changed. Now youcan configure the runtime library to contain the features that are needed by yourapplication.Version 3.x assembler Version 4.x assemblerASM_78000ASM_78K A78000_INC A78K_INCMigrating to the 78K IAR Embedded Workbench version 4.x5One example is input and output. An application may use the fprintf function for terminal I/O (stdout ), but the application does not use file I/O functionality on file descriptors associated with the files. In this case the library can be configured so that code related to file I/O is removed but still provides terminal I/O functionality.This configuration involves the library header files, for example stdio.h . This means that when you build your application, the same header file setup must be used as when the library was built. The library setup is specified in a library configuration file , which is a header file that defines the library functionality.When building an application using the IAR Embedded Workbench, there are three library configuration alternatives to choose between: Normal , Full , and Custom .Normal and Full are prebuilt library configurations delivered with the product, where Normal should be used in the above example with file I/O. Custom is used for custom built libraries. Note that the choice of the library configuration file is handled automatically.When building an application from the command line, you must use the same library configuration file as when the library was built. For the prebuilt libraries (r26) there is a corresponding library configuration file (h ), which has the same name as the library. The files are located in the 78k\lib directory. The command lines for specifying the library configuration file and library object file could look like this:icc78k -D_DLIB_CONFIG_FILE=C:\...\78k\lib\dlib\dl78ksln.h xlink dl78ksln.r26In case you intend to build your own library version, use the default library configuration file dl78kCustom.h .To take advantage of the features it is recommended that you read about the runtime environment in the 78K IAR C/C++ Compiler Reference Guide .PROGRAM ENTRYBy default, the linker includes all root declared segment parts in program modules when building an application. However, there is a new mechanism that affects the load procedure.There is a new linker option Entry label (-s ) to specify a start label . By specifying the start label, the linker will look in all modules for a matching start label, and start loading from that point. Like before, any program modules containing a root segment part will also be loaded.In version 4.x, the default program entry label in cstartup.s26 is__program_start , which means the linker will start loading from there. The advantage of this new behavior is that it is much easier to override cstartup.s26.Runtime library, runtime environment, and object file considerations78K IAR Embedded Workbench®Migration Guide If you build your application in the IAR Embedded Workbench, just add your customized cstartup file to your project. It will then be used instead of the cstartup module in the library. It is also possible to switch startup files just by overriding the name of the program entry point.If you build your application from the command line, the -s option must be explicitly specified when linking a C/C++ application. If you link without the option, the resulting output executable will be empty because no modules will be referred to.SYSTEM INITIALIZATION—CSTARTUPThe content of the cstartup.s26 file has been split up into two files: cstartup.s26, cexit_clib.s26 (for CLIB), cexit_dlib.s26 (for DLIB) Now, the cstartup.s26 file contains exception vectors and initial startup code to setup stacks and it initializes data segments and executes C++ constructors. Note that only the cstartup.s26 file might require any modifications.The cexit.s26 file contains termination code, for example, execution of C++ destructors.For old applications that used a modified copy of cstartup.s26, you must make a copy of the supplied new cstartup file and adapt it to your needs.MIGRATING FROM CLIB TO DLIBThere are some considerations to have in mind when if you want to migrate from the CLIB, the legacy C library, to the modern DLIB C/C++ library:●The CLIB exp10() function defined in iccext.h is not available in DLIB.●The DLIB library uses the low-level I/O routines __write and __read instead ofputchar and getchar.●If the heap size in your version 3.x pr oject using CLIB was defined in a file namedheap.c, you must now se t the heap size either in the extended linker command file (*.xcl) or in the Embedded Workbench to use the DLIB library.You should also see the chapter The DLIB runtime environment in the 78K IAR C/C++ Compiler Reference Guide.DEVICE-SPECIFIC HEADER FILESThe header files that defines peripheral registers delivered with version 2.x and 3.x cannot be used with version 4.x. For version 4.x applications, make sure to use theheader files delivered with version 4.x.6Migrating to the 78K IAR Embedded Workbench version 4.xCALLING CONVENTIONFor backwards compatibility, the 78K IAR C/C++ Compiler version 4.x also supportsthe calling conventions used by the versions 2.x and 3.x of the compiler. For informationabout the old calling conventions, see the user documentation provided with thosecompiler versions. To use any of the old calling conventions in version 4.x , define anddeclare your functions with the appropriate keyword available for backwardcompatibility:OBJECT FILE CONSIDERATIONSObject files (r26) created with the compiler version 3.x or 2.x will be possible to linkwith object files created with version 4.x under the following conditions:●The appropriate extended keyword __V3_call or __V2_call is used in functiondeclarations●The object file does not call any CLIB library functions. This is not allowed becausethe calling convention has changed●Debug information cannot be available●The version 4.x cstartup.s26 file has been modified, see System initialization—Cstartup , page 6●The linker command file has been updated with segment name information, see Compiler options , page 8.Linker errors and warningsWhen linking the application, the following linker error might be generated:Error [e46]: Undefined external "?xxxxx_Lnn" referred in Example1This error message is generated if the version 3.x or 2.x object module is referring aruntime library function which is not available in the version 4.x runtime library. In thiscase, you can extract the referred function from the version 3.x or 2.x runtime librarymodule and include it in your version 4.x project by using the IAR XLIB Librarian.The following linker warnings can be ignored:Warning [w31]: Modules have been compiled with possiblyincompatible settings:1 modules (including 'Example1' [78000 v1 m0 ...]) used one set.Keywords for backwardcompatibility Description__V2_call Calling convention compatible with version 2.x of the compiler__V3_call Calling convention compatible with version 3.x of the compiler Table 1: Keywords for old calling conventionsCompiler options78K IAR Embedded Workbench®1 modules (including 'Example2' [78000 v1 m0 ...]) used one set.Warning [w6]: Type conflict for external/entry "Example3", inmodule Example4 against external/entry in module Example5; types have different memory attributesCompiler optionsThe command line options in version 4.x follow two different syntax styles:●Long option names containing one or more words prefixed with two dashes, and sometimes followed by an equal sign and a modifier, for example --strict_ansi and --module_name=test . ●Short option names consisting of a single letter prefixed with a single dash, andsometimes followed by a modifier, for example -r .Some options appear in one style only, while other options appear as synonyms in bothstyles. A number of new command line options have been added. For a complete list ofthe available command line options, see the 78K IAR C/C++ Compiler ReferenceGuide .The old environment variable QCC78000 has changed to QCC78K .MIGRATING PROJECT OPTIONSSince the available compiler options differ between version 3.x and version 4.x , youshould verify your option settings after you have converted an old project.If you are using the command line interface, you can simply compare your makefile withthe option tables in this section, and modify the makefile accordingly.If you are using the IAR Embedded Workbench IDE, all option settings areautomatically converted during the project conversion.However, it is still recommended to verify the options manually. Follow these steps:1Open the old project in the old IAR Embedded Workbench version.2In the project window, select the project level to get information about options on alllevels in your project.3To save the project settings to a file, right-click in the project window. On the contextmenu that appears, choose Save As Text , and save the settings to an appropriatedestination.4Use this file and the option tables in this section to verify whether the options you usedin your old project are still available or needed. Also check whether you need to useany of the new options.Migrating to the 78K IAR Embedded Workbench version 4.x For information about where to set the equivalent options in the IAR EmbeddedWorkbench IDE, see the 78K IAR C/C++ Compiler Reference Guide.Removed optionsThe following table shows the command line options that have been removed:Old option Description-C Nested comments-d Static locals-Es Switch statement code inline-Eu Disables word alignment for data segments-Err No use of register variables-F Form-feed in list file after each function-G Open standard input as source; replaced by - (dash) as source file namein version 4.x-g Global strict type checking; in version 4.x, global strict type checking isalways enabled-gO No type information in object code-h Disable assignment compatibility attribute test-i Add #include file text-K ‘//’ comments; in version 4.x, ‘//’ comments are allowed unless theoption --strict_ansi is used-P Generate promable code-p nn Lines/page-R Code segment name-T Active lines only-t n T ab spacing-U symb Undefined preprocessor symbol-X Explain C declarations-x[DFT2] Cross-reference-y Writable stringsTable 2: Version 3.x compiler options not available in version 4.xCompiler options78K IAR Embedded Workbench®Identical optionsThe following table shows the command line options that are identical in version 3.x and version 4.x:Note:For the optimization options (-s and -z), only levels 2, 3, 6, and 9 are available in version 4.x.Renamed or modified optionsThe following version 3.x command line options have been renamed and/or modified: Option Comment-D symb=value Definesymbols-eLanguageextensions-f filename Extend the command line-I Include paths (The syntax is more free in ICC78K version 4.x)-o filename Set object filename-s[0–9]Optimize for speed-z[0–9]Optimize for sizeTable 3: Compiler options identical in both compiler versionsOld option New option Description-A-a filename -la .-la filenameAssembler output; see Filenames, page 11-b--library_module Makes an object a library module -c--char_is_signed‘char’ is ‘signed char’-gA--strict_ansi Flags old-style functions-H name--module_name=name Sets object module name-L[prefix], -l filename-l[a|A|b|B|c|C|D][N][H]{filename|directory}Generates list file; the modifiers specify the type of list file to create-ms--code_model standard Model for non-banked function calls; libraryfunctions are called with the CALLinstruction-mS--code_model standard--generate_callt_runtime_library_calls Model for non-banked function calls; library functions are called with the CALLT instruction-mb--code_model banked Model for banked function calls; libraryfunctions are called with the CALLinstructionTable 4: Renamed or modified optionsMigrating to the 78K IAR Embedded Workbench version 4.xFILENAMESIn version 3.x , file references can be made in either of the following ways:●With a specific filename, and in some cases with a default extension added, using acommand line option such as -a filename (assembler output to named file).●With a prefix string added to the default name, using a command line option such as-A[prefix] (assembler output to prefixed filename).In version 4.x , a file reference is always regarded as a file path that can be a directorywhich the compiler will check and then add a default filename to, or a filename .The following table shows some examples where it is assumed that the source file isnamed test.c , myfile is not a directory and mydir is a directory:-mB --code_model banked --generate_callt_runtime_library_calls Model for banked function calls; libraryfunctions are called with the CALLTinstruction-N prefix, -n filename --preprocess=[c][n][l] filenamePreprocessor output-q -lA . -lC .Inserts mnemonics; list file syntax haschanged-r[012][i][n][r][e]-r --debug Generates debug information; themodifiers have been removed-S --silent Sets silent operation-u --disable_data_alignment Disables data alignment of data objects -v[0|1|2]--core=[78k0_basic|78k0|78k0s]Specifies the microcontroller core-W{rs}--workseg_area{=rs}Specifies the space reserved in the saddrarea for the WRKSEG segment.-w --no_warnings Disables warningsOld option New option Description Table 4: Renamed or modified options (Continued)Old command New command Result-l myfile -l myfile myfile.lst-Lmyfile -l myfiletest myfiletest.lst-L -l .test.lst-Lmydir/-l mydir mydir/test.lst Table 5: Specifying filename and directory in version 3.x and version 4.xExtended keywords78K IAR Embedded Workbench®LIST FILESIn version 3.x, only one C list file and one assembler list file can be produced; in version 4.x there is no upper limit on the number of list files that can be generated. The new command line option -l[a|A|b|B|c|C|D][N][H]{filename|directory} is used for specifying the behavior of each list file.Extended keywordsThe set of extended keywords has changed in version 4.x. Some keywords have beenadded, some keywords have been removed, and for some keywords the syntax haschanged. In addition, memory attributes have a different interpretation if used incombination with typedef.In version 4.x, all extended keywords except asm start with two underscores, forexample __no_init.The following table lists the old keywords, their new equivalents, and completely newkeywords:Old keyword/construction New keyword/construction_ASM (this was an intrinsicfunction in version 3.x)asmbanked__bankedbit Bit variables are now supported by using 1-bit char bitfieldscallf__callfcallt__calltinterrupt__interruptmonitor__monitornear__nearnon_banked__non_bankedno_init__no_initno_save__no_savesaddr__saddrshortad__saddrsfr SFRs are declared using absolute declarations with the @ or#pragma location syntax together with the keywords __sfr__no_init volatile charTable 6: Old and new extended keywordsMigrating to the 78K IAR Embedded Workbench version 4.xTo simplify the migration, the include file migration.h is delivered with version 4.x . This include file maps the old keywords with their new counterparts, if possible. For example: #define near __nearWhenever possible, the include file also maps old and new intrinsic functions.For detailed information about the extended keywords available in version 4.x , see the 78K IAR C/C++ Compiler Reference Guide .SFRIn version 3.x of the compiler, the keywords sfr and sfrp denote an object of byte or word size residing in the Special Function Register (SFR) memory area for the chip, and having a volatile type. The SFR is always located at an absolute address. For example:sfr P0=FF00;In version 4.x , the keywords sfr and sfrp are not available. Instead is possible to:●Place any object into any memory, by using a memory attribute; for example:__near int b;●Locate any object at an absolute address by using the #pragma location directive or by using the locator operator @; for example:long P0 @ FF00;●Use the volatile attribute on any type, for example:volatile char P0 @ FF00;BIT VARIABLESA bit variable in version 3.x is a volatile boolean variable that can have an absolute bit address, be co-located with an SFR or be a relocatable object, like ordinary variables. For example:bit a = 87; /* at bit-address 87 (version 3.x) */bit p0_bit = P0.5; /* bit 5 of P0 (version 3.x) */sfrp Declaration of SFRs is done by using absolute declarations with the@ or #pragma location syntax together with the keywords__sfr __no_init volatile shortsfr...__IO_NB __no_bit_accesssfr...__IO_RO constsfr...__IO_WO The SFR write only access is no longer availableusing[n ]The bank number n has to be declared using #pragma bank=n Old keyword/construction New keyword/construction Table 6: Old and new extended keywords (Continued)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1CURRENT VERSION:IAR 4.11A/WIN,FET 5.12/WIN1.1KNOWN LIMITATIONSRelease NotesSLAA304I–June 2006–Revised June 2008Literature #slac050s.zip Executable file name FET_R512.exe HIL.dll version 1.2.4.0MSP430.dll version2.3.4.2JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM7Advanced Trigger of type Register does not work properly for MSP430X architectureDescriptionThe configuration of an Advanced Trigger of type Register [e.g.,to observe the Stack Pointer (SP)register value]does not show the expected behavior in the case when a device with the MSP430X architecture (e.g.,MSP430FG461x,MSP430F241x,and MSP430F261x)is the target of a debug session.WorkaroundNoneSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 1Submit Documentation Feedback2PRIOR VERSION:IAR 4.010E/WIN,FET 5.11/WIN2.1KNOWN LIMITATIONSPRIOR VERSION:IAR 4.010E/WIN,FET 5.11/WIN Literature #slac050r.zip Executable file name FET_R511.exe HIL.dll version 1.2.2.0MSP430.dll version2.3.3.0JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM7Advanced Trigger of type Register does not work properly for MSP430X architectureDescriptionThe configuration of an Advanced Trigger of type Register [e.g.,to observe the Stack Pointer (SP)register value]does not show the expected behavior in the case when a device with the MSP430X architecture (e.g.,MSP430FG461x,MSP430F241x,and MSP430F261x)is the target of a debug session.WorkaroundNoneCSPY1Integer values of C-type 'long'(32bit)are displayed incorrectly in Watch window for MSP430X architectureDescriptionThis affects 32-bit values that are held in two CPU registers;e.g.,a value of 0x00123456is stored in R14and R15.The lower word of the 32-bit value is stored as R14=0x3456,and the higher word is stored as R15=0x0012.The C-Spy Watch window shows a value of 0x12003456.This is a problem with the Watch window only–the program code produces the correct results.It is recommended not to change the dedicated 32-bit value via the Watch window,as this can cause unpredictable behavior.This limitation is only valid when a device with the MSP430X architecture is the target of a debug session.WorkaroundNoneIAR Embedded Workbench KickStart2SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback3PRIOR VERSION:IAR 4.09A/WIN,FET 5.10/WIN3.1KNOWN LIMITATIONS PRIOR VERSION:IAR 4.09A/WIN,FET 5.10/WINLiterature #slac050q.zip Executable file name FET_R510.exe HIL.dll version 1.2.2.0MSP430.dll version2.3.1.0JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM7Advanced Trigger of type Register does not work properly for MSP430X architectureDescriptionThe configuration of an Advanced Trigger of type Register [e.g.,to observe the Stack Pointer (SP)register value]does not show the expected behavior in the case where a device with the MSP430X architecture (e.g.,MSP430FG461x,MSP430F241x,and MSP430F261x)is the target of a debug session.WorkaroundNoneIDE1Key bindings are deletedDescriptionIf this version of the IAR Embedded Workbench (4.09A/WIN)is installed in the same subdirectory where a previous version (e.g.,3.42A/WIN)is already installed,all key bindings [e.g.,debug hotkeys F5(Go),F10(Step Over),F11(Step Into)]are deleted in both versions.WorkaroundSelect in main menu Tools ->Options...->Key Bindings and push the 'Reset All'button in each IAR installation.CSPY1Integer values of C-type 'long'(32bit)are displayed incorrectly in Watch window for MSP430X architectureDescriptionThis affects 32-bit values that are held in two CPU registers;e.g.,a value of 0x00123456is stored in R14and R15.The lower word of the 32-bit value is stored as R14=0x3456,and the higher word is stored as R15=0x0012.The C-Spy Watch window shows a value of 0x12003456.This is a problem with the Watch window only–the program code produces the correct results.It is recommended not to change the dedicated 32-bit value via the Watch window,as this can cause unpredictable behavior.This limitation is only valid in the case where a device with the MSP430X architecture is the target of a debug session.WorkaroundNoneDEVICE3MSP430F2616and MSP430F2617devices are not correctly recognized by debuggerDescriptionWhen starting a debug session the Emulator shows a warning that "Chosen derivative (MSP430F2616)and actual hardware (MSP430F2619)do not match."for a project configured for MSP430F2616and "Chosen derivative (MSP430F2617)and actual hardware (MSP430F2618)do not match."for a project configured for MSP430F2617.WorkaroundMessage can be ignored.Click 'Yes'to continue download and start debug session.SLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart3Submit Documentation Feedback4PRIOR VERSION:IAR 3.42A/WIN,FET 4.63/WIN4.1KNOWN LIMITATIONSPRIOR VERSION:IAR 3.42A/WIN,FET 4.63/WIN Literature #slac050p.zip Executable file name FET_R463.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.10.1JTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneEEM6Emulator Clock Control is not active by defaultDescription The "Emulator ->Clock Control"feature is not enabled by default when the C-Spy debugger starts.WorkaroundOpen "Emulator ->Clock Control"dialog box and close it again by clicking on the OK button.Emulation clock control is now activated.IAR Embedded Workbench KickStart4SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback5PRIOR VERSION:IAR 3.42A/WIN,FET 4.62/WIN5.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.42A/WIN,FET 4.62/WINLiterature #slac050o.zip Executable file name FET_R462.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.10.0DEVICE2Support for MSP430F11x1A device derivatives Revision JDescriptionSilicon revision J of MSP430F11x1A devices is not recognized correctly by the Emulator driver.It is not possible to download and debug program code on this dedicated silicon revision.WorkaroundNoneJTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 5Submit Documentation Feedback6PRIOR VERSION:IAR 3.42A/WIN,FET 4.61/WIN6.1KNOWN LIMITATIONSPRIOR VERSION:IAR 3.42A/WIN,FET 4.61/WIN Literature #slac050n.zip Executable file name FET_R461.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.9.0HEADERFILES1Definitions in generic header files msp430.h and io430.hDescription•Both files do not include any definitions for MSP430F161x devices.•Both files contain wrong definitions for FE,FG,and FW devices (exclusive MSP430FG461x devices).•The file msp430.h includes io430x22x2.h instead of msp430x22x2.h for MSP430F22x2devices.WorkaroundUse device-specific header files rather than the generic header files or edit generic header files accordingly.CONFIGFILES1RAM size definition in lnk430f223x.xcl linker command filesDescriptionA value of 0x02FF is specified for RAM segments (DATA16_I,DATA16_N,DATA16_N,CSTACK,HEAP),which corresponds to a RAM size of 256bytes.Actually,MSP430F223x devices have 512bytes of RAM,which results in a value of 0x03FF.WorkaroundEdit linker command files accordingly.CONFIGFILES2RAM size definition in lnk430f23x0.xcl linker command filesDescription•RAM segments definition in lnk430f2330.xcl should be 0x05FF instead of 0x02FF.•RAM segments definition in lnk430f2350.xcl should be 0x09FF instead of 0x03FF.WorkaroundEdit linker command files accordingly.JTAG1JTAG security fuse blowing for MSP430F23x0devicesDescription It is not possible to burn the JTAG security fuse of MSP430F23x0devices.WorkaroundNoneJTAG2Attach to running targetDescription The "Attach to running target"feature is not working 100%reliably,especially for Spy-Bi-Wire capable devices.WorkaroundNoneIAR Embedded Workbench KickStart6SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback7PRIOR VERSION:IAR 3.42A/WIN,FET 4.60/WIN7.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.42A/WIN,FET 4.60/WINLiterature #slac050m.zip Executable file name FET_R460.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.8.1DEVICE1Support for MSP430F22x2device derivativesDescriptionMSP430F22x2devices are recognized by the Emulator driver as the corresponding MSP430F22x4derivative.This results in an Emulator warning that the "Chosen derivative (MSP430F22x2)and actual hardware (MSP430F22x4)do not match".WorkaroundThe Emulator warning can be ignored.MSP430F22x2and MSP430F22x4derivatives are identical in terms of memory configuration.No issue is caused by ignoring the Emulator warning.SLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 7Submit Documentation Feedback8PRIOR VERSION:IAR 3.41G/WIN,FET 4.53/WIN8.1KNOWN LIMITATIONSPRIOR VERSION:IAR 3.41G/WIN,FET 4.53/WIN Literature #slac050l.zip Executable file name FET_R453.exe HIL.dll version 1.2.2.0MSP430.dll version2.1.8.0EEM5Enhanced Emulation Module Advanced TriggerDescription Changing the Action in the Advanced Trigger dialog sometimes has no effect,especially with triggers of type Register.WorkaroundDisable/enable the according trigger by unchecking/checking the checkbox in the global Breakpoints window.IAR Embedded Workbench KickStart8SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback9PRIOR VERSION:IAR 3.41A/WIN,FET 4.52/WIN9.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.41A/WIN,FET 4.52/WINLiterature #slac050k.zip Executable file name FET_R452.exe HIL.dll version 1.2.1.0MSP430.dll version2.1.7.0EEM1Enhanced Emulation Module Breakpoint CombinerDescription It is not possible to combine an Advanced Trigger of type Register with any other configured trigger.WorkaroundNoneEEM2Enhanced Emulation Module Sequencer ControlDescription Opening the Sequencer Control window prevents further debugging.The workbench hangs up.WorkaroundNoneSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart 9Submit Documentation Feedback10PRIOR VERSION:IAR 3.40B/WIN,FET 4.51/WIN10.1KNOWN LIMITATIONS PRIOR VERSION:IAR 3.40B/WIN,FET 4.51/WIN Literature #slac050j.zip Executable file name FET_R451.exe HIL.dll version 1.2.1.0MSP430.dll version2.1.6.0EEM1Enhanced Emulation Module Breakpoint CombinerDescription It is not possible to combine an Advanced Trigger of type Register with any other configured trigger.WorkaroundNoneEEM2Enhanced Emulation Module Sequencer ControlDescription Opening the Sequencer Control window prevents further debugging.The workbench hangs up.WorkaroundNoneEEM3Enhanced Emulation Module Clock ControlDescription Any changes made in the Clock Control window have no effect and are discarded after clicking the "OK"button.WorkaroundNone EEM4BreakpointsDescription Advanced Triggers of type Register where the specified register is any other CPU register than the SP (Stack Pointer)have no effect.WorkaroundNoneFLASH1Debugger Flash ProgrammingDescription It is not possible to link any code/data into Information Memory segments B,C,and D of MSP430F2xx devices without erasing DCO calibration data in segment A.WorkaroundNoneIAR Embedded Workbench KickStart10SLAA304I–June 2006–Revised June 2008Submit Documentation Feedback11VERSION MATRIX:KNOWN LIMITATIONS VERSION MATRIX:KNOWN LIMITATIONSLiterature #H E A D E R F I L E S 1C O N F I G F I L E S 1C O N F I G F I L E S 2J T A G 1J T A G 2D E V I C E 1D E V I C E 2D E V I C E 3E E M 1E E M 2E E M 3E E M 4E E M 5E E M 6E E M 7F L A S H 1I D E 1C S P Y 1 slac050s.zip üüslac050r.zip üüüslac050q.zip üüüüüslac050p.zip üüüslac050o.zip üüüüslac050n.zip üüüüüüüslac050m.zip üüüüslac050l.zip üüüslac050k.zip üüüüslac050j.zipüüüüüüüSLAA304I–June 2006–Revised June 2008IAR Embedded Workbench KickStart11Submit Documentation FeedbackIMPORTANT NOTICETexas Instruments Incorporated and its subsidiaries(TI)reserve the right to make corrections,modifications,enhancements,improvements, and other changes to its products and services at any time and to discontinue any product or service without notice.Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete.All products are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment.TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s standard warranty.Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty.Except where mandated by government requirements,testing of all parameters of each product is not necessarily performed.TI assumes no liability for applications assistance or customer product design.Customers are responsible for their products and applications using TI components.To minimize the risks associated with customer products and applications,customers should provide adequate design and operating safeguards.TI does not warrant or represent that any license,either express or implied,is granted under any TI patent right,copyright,mask work right, or other TI intellectual property right relating to any combination,machine,or process in which TI products or services are rmation published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement e of such information may require a license from a third party under the patents or other intellectual property of the third party,or a license from TI under the patents or other intellectual property of TI.Reproduction of TI information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties,conditions,limitations,and notices.Reproduction of this information with alteration is an unfair and deceptive business practice.TI is not responsible or liable for such altered rmation of third parties may be subject to additional restrictions.Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice.TI is not responsible or liable for any such statements.TI products are not authorized for use in safety-critical applications(such as life support)where a failure of the TI product would reasonably be expected to cause severe personal injury or death,unless officers of the parties have executed an agreement specifically governing such use.Buyers represent that they have all necessary expertise in the safety and regulatory ramifications of their applications,and acknowledge and agree that they are solely responsible for all legal,regulatory and safety-related requirements concerning their products and any use of TI products in such safety-critical applications,notwithstanding any applications-related information or support that may be provided by TI.Further,Buyers must fully indemnify TI and its representatives against any damages arising out of the use of TI products in such safety-critical applications.TI products are neither designed nor intended for use in military/aerospace applications or environments unless the TI products are specifically designated by TI as military-grade or"enhanced plastic."Only products designated by TI as military-grade meet military specifications.Buyers acknowledge and agree that any such use of TI products which TI has not designated as military-grade is solely at the Buyer's risk,and that they are solely responsible for compliance with all legal and regulatory requirements in connection with such use. TI products are neither designed nor intended for use in automotive applications or environments unless the specific TI products are designated by TI as compliant with ISO/TS16949requirements.Buyers acknowledge and agree that,if they use any non-designated products in automotive applications,TI will not be responsible for any failure to meet such requirements.Following are URLs where you can obtain information on other Texas Instruments products and application solutions:Products ApplicationsAmplifiers AudioData Converters AutomotiveDSP BroadbandClocks and Timers Digital ControlInterface MedicalLogic MilitaryPower Mgmt Optical NetworkingMicrocontrollers SecurityRFID TelephonyRF/IF and ZigBee®Solutions Video&ImagingWirelessMailing Address:Texas Instruments,Post Office Box655303,Dallas,Texas75265Copyright©2008,Texas Instruments Incorporated。