IARIxxat
license相关|编译与链接|仿真与调试|代码分析|其他

常见问题与解答

Q:IAR Eclipse插件
A:

介绍

IAR针对Eclipse开发了功能完善的插件,在Eclipse安装了插件之后,可以新建或导入已有的IAR工程,调用IAR工具链编译代码,调试程序(目前仅ARM版本支持)。根据IAR官网的信息,目前以下架构的IAR Embedded Workbench编译工具链提供了Eclipse插件:

Texas Instruments MSP430          Renesas R32C

Renesas V850                             Renesas RH850

Renesas RL78                             Renesas RX

Renesas 78K                               STMicroelectronics STM8

针对ARM架构则提供了完整的工具链插件,包括调试:

IAR C/C++ Compiler, IAR Assembler, and IAR ILINK Linker

IAR C-SPY Debugger (replaces the GDB-based debugger that is standard with Eclipse CDT)

Project import functionality

Advanced trace features

Instruction set simulator

All standard Eclipse CDT features

下面以IAR Embedded Workbench for ARM 8.30.1为例,介绍如何搭建Eclipse环境,安装和使用IAR Eclipse插件。

环境配置

1. 首先安装Java Runtime Environment。必须是v8及之后的版本,下载链接:https://java.com/zh_CN/

2. 安装Eclipse IDE for C/C++ DevelopersIAR最新支持的版本是Eclipse Oxygen (4.7),更新的版本经测试,目前IAR Plugin Manager在该版本上不能工作。

Eclipse官方下载:http://www.eclipse.org/downloads/

3. 安装 IAR Plugin Manager

打开Eclipse,从“Help”菜单下的选择“Install New software…”。

在“Work With”输入框中填写网址:http://eclipse-update.iar.com/plugin-manager/1.0/

点击“Add”按钮,在弹出的“Add Repository”对话框中输入名称,然后再单击“Add”按钮添加。操作过程中电脑需要能够联网。

Q:如何解决找不到网络License的问题
A:

介绍

本文介绍了一些网络版License使用过程中可能遇到的一些问题及解决建议。常见的网络License问题有以下3类,并分别给出了对应的解决建议。

License Server端显示没有License,解决建议参考下面的(1)和(2

License Sever端有License信息,但是显示该License无效,解决建议参考(3

License Server显示存在有效License,但IAR客户端无法获取到该License,解决建议参考(4

解决建议

1)检查激活步骤

在服务器端的License激活过程中,需要与IAR的服务器进行通信,而这一通信过程可能会失败。激活过程中与IAR服务器通信需使用到HTTP 443端口,所以请检查一下服务器的防火墙设置,打开该端口后尝试重新激活一次。

2)检查“lservrc”文件的权限

IARLicense信息保存在名为“lservrc”的文件中,如果保存该文件的文件夹设置了保护权限,那么“IAR License Server”软件将无法将License信息写入到该文件中。“lservrc”文件保存路径如下:

C:\Program Files (x86)\Common Files\SafeNet Sentinel\Sentinel RMS License Manager\WinNT

请将该文件目录的读写权限修改为“允许写入”后重新激活一次。

3)“License无效”解决建议

License无效大多可能是Dongle的驱动没有被正确安装导致的,所以请尝试重新安装Dongle驱动。安装驱动过程中注意以下几点:

以管理员权限进行安装

安装Dongle驱动过程中需要把Dongle从电脑拔下

安装完成后需要重启电脑

安装失败时可尝试多个USB端口,以及避免使用USB Hub

4)检查网络配置

IAR客户端访问License Server端需要使用到UDP 5093端口,该端口在服务器端必须被打开,所以请检查服务器端的该端口是否被打开。以及在通信过程中使用到网桥也需要将该端口打开。

将端口打开后在客户端重新添加一下所使用的License Server

5)更新IAR License Server

检查一下IAR License Server软件是否有发生更新,更新过程中可能修复了一些问题,所以可以尝试将IAR License Server更新到最新版本,看能否解决问题。

注意:本文适用于以下及更高版本IAR软件。


? SEQ \* ARABIC \s 1 1

Q:IAR C-SPY哪些调试功能会占用断点资源
A:

用户断点

用户断点是指在断点对话框中定义的断点或在编辑器窗口中设置的断点。通常每个断点只占用一个物理断点,但也可能会有差异。某些用户断点消耗多个物理断点;相反,有时候多个用户断点可以共享一个物理断点。用户断点在Breakpoint Usage窗口和Breakpoint窗口中可以用相同的方式显示,例如:Data @ [R] callCount。

C-SPY本身会不经意间隐含地消耗一些断点,使本来就不宽裕的断点资源被莫名其妙的占用掉,因此,我们需要了解什么情况下C-SPY调试器也会占用断点资源。

C-SPY本身的断点消耗

如果出现以下情况,C-SPY将设置断点:
● Debugger选项Run to被设置以后,并且在使用单步调试命令。但是,这些都是临时断点,仅在调试会话期间设置,在Breakpoints窗口中不可见。
● 在Linker选项中选择了Semihosted或IAR Breakpoints。在DLIB运行时环境中,C-SPY将在上面设置系统断点__DebugBreak。

这些类型的断点消耗者将显示在Breakpoint Usage窗口中,例如:C-SPY终端I/O和libsupport模块
Breakpoint Usage窗口需要从您正在使用的C-SPY驱动程序的菜单中获得。进入调试界面后,可从I-jet,J-Link或者ST-Link等菜单下面找到:

Q:调试时校验和不正确的解决方法
A:
介绍
当设置了一个软件断点时,一条断点指令将被设置在Flash存储器中,这会使该存储器范围的校验和计算失败。

解决方案
如果要调试校验和算法,应该使用硬件断点或根本没有断点。要控制硬件断点的使用,请查看技术说明31070。


对不同类别芯片的说明
Atmel AVR器件
? 在Xmega器件中,经常使用软件断点。这使得无法在调试模式下,计算正确的校验和。
? DebugWIRE只有软件断点。无法为只带有debugWIRE的芯片进行校验和算法调试。


对某些仿真器的说明

IAR EWARM中使用J-Link
J-Link驱动程序可以设置“Flash 断点”,必须禁用Flash断点。
当J-Link控制面板打开时(例如:在调试时),可以在以下位置禁用Flash断点:设置>Flash断点。

IAR EWMSP430中使用了FET仿真器
适用于MSP430版本5.51(及更高版本)的IAR Embedded Workbench 默认启用了Flash断点。(因此,如果所有硬件断点都在使用中,则可能会出现此类问题)。
Q:堆栈溢出警告
A:

介绍

在某些情况下,C-SPY发出警告,如... ...

堆栈 “CSTACK” 被填充到了100 %(在4096个字节的堆栈中已经使用了4096个字节 )。该警告阈值被设置到90 %。
...并且没有理由发出警告,因为堆栈中应该有足够的可用空间。

背景
创建项目时,选项将设置为默认值。这种默认值之一是启用C堆栈检查。在编写和调试普通的嵌入式应用程序时,检查C堆栈可能是一个很好的功能。
另一方面,在带有RTOS的应用程序中,C的堆栈检查将无法按预期完成工作。这是C堆栈检查无法“理解”堆栈指针在“已知”的堆栈区域之外的原因。这种情况是由RTOS来维护的,并在RTOS应用程序中不同任务的不同堆栈之间切换。
现在,C-SPY中C堆栈检查的程序已集成到IAR Embedded Workbench中。(再此之前,堆栈检查由C-SPY插件来完成的。)

解决方案
通过删除Tools > Options... > Stack > 'Warn when stack pointer is out of bounds' 的复选标记来禁用警告消息。
内容来源IAR technote 57348

未能找到相关解答:

技术支持:

support@bmrtech.com

京ICP备:京ICP备05011254号-1 版权归梦之城手机客户端_梦之城在线_梦之城棋牌【全网首家】所有
梦之城手机客户端_梦之城在线_梦之城棋牌【全网首家】