摘要:
本文给出IAR因版本不兼容打不开IAR工作区遇到的各种问题及解决方法,包括依据提示修改版本,删除未知名称(ewp文件)。若还没解决,则创建新工作区、工程,并拷贝相关文件,我想这是一种通用化的解决方法(很诡异)。
PS:本文以IAR工程项目ContikiCC2530Port为例,IAR for MCS-51版本是7.51A。本文记录了整个调试过程,实际场景,不妨先跳到第三部分,看行不行,不行的话,再按第二部分修改。
一、IAR错误提示
昨天,在GitHub下载了一个IAR工程项目ContikiCC2530Port,打开*.eww文件出现一系列错误,如下:
1.1 Broken options were detected in the project file.A backup copy will be made.
图1 IAR警告Broken options
1.2 The project file * was created by a newer version of project and cannot be opened
图2 IAR警告created by a newer version
1.3 The project * could not be open
图3 IAR警告could not be open
Build区域显示如下信息:
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General': The format of this file is not supported by this version of the workbench.
It appears to have been written by a newer version of the workbench. Diagnostics: 'Settings 'General': unsupported version - '.
Options for 'General' will be set to default. Creating backup of original project file.
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'ICC8051': (Registry: unknown name: CompilerMisraRules04)
Options for 'ICC8051' will be set to default.
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'XLINK': The format of this file is not supported by this version of the workbench. It appears to have been written by a newer version of the workbench.
Diagnostics: 'Settings 'XLINK': unsupported version - '.
Options for 'XLINK' will be set to default.
如下图所示:
图4 IAR log windows信息
初步断定,这些警告是因为IAR版本不兼容引起的,但事实上没那么简单,之前也遇见用新版本IAR打开旧版本IAR工程文件,可以直接打开(给出提示信息),在这里还涉及到工程项目配置。解决方法是修改相关的IAR工程文件,描述IAR工程主要有.dep、.eww(Embedded Workbench Workspace)、.ewd(Embedded Workbench Debug)、.ewp(Embedded Workbench Project)文件。
dep --(我也不知道)
eww --工作区文件,描述工作区包含哪些project
ewd --C-SPY调试器项目设置文件
ewp --IA项目的配置信息
二、Broken options
Broken options是由于项目文件配置不对引起的,按提示信息修改。版本不对的,修改版本;unknown name的,则删去这些配置选项。
2.1 General
2.1.1 'Settings 'General': unsupported version
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General':
The format of this file is not supported by this version of the workbench. It appears to have been written by a newer version of the workbench.
Diagnostics: 'Settings 'General': unsupported version - '. Options for 'General' will be set to default. Creating backup of original project file.
(2)解决
找一个IAR现版本可以找开的工程文件,查看General的版本,并将工程文件的版本改成可支持的版本,如下图所示:
2.1.2 unknown name: PDATA 8-15 register address
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General': (Registry: unknown name: PDATA 8-15 register address)
Options for 'General' will be set to default. Creating backup of original project file.
(2)解决
在.ewp文件找到PDATA 8-15 register address,删去
...,如下:
PDATA 8-15 register address
0xA0
2.1.3 unknown name: PDATA 16-31 register address
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General': (Registry: unknown name: PDATA 16-31 register address)
Options for 'General' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到PDATA 16-31 register address,删去
...
2.1.4 unknown name: General Far22 Heap Size
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General': (Registry: unknown name: General Far22 Heap Size)
Options for 'General' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到General Far22 Heap Size,删去
...
2.1.5 GeneralMisraVer
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General': (Registry: unknown name: GeneralMisraVer)
Options for 'General' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到GeneralMisraVer,删去
...
2.1.6 GeneralMisraRules04
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'General': (Registry: unknown name: GeneralMisraRules04)
Options for 'General' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到GeneralMisraRules04,删去
...
2.2 ICC8051(ARM平台为ICCARM)
2.2.1 'Settings 'ICC8051': unsupported vesion
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'ICC8051':
The format of this file is not supported by this version of the workbench. It appears to have been written by a newer version of the workbench.
Diagnostics: 'Settings 'ICC8051': unsupported version - '.
Options for 'ICC8051' will be set to default. Creating backup of original project file.
(2)解决
同2.1.1,找一个IAR现版本可以找开的工程文件(或者自己创建一个工程文件),查看ICC8051的版本,并将工程文件的版本改成可支持的版本,如下图所示:
2.2.2 unknown name: CompilerMisraRules04
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'ICC8051': (Registry: unknown name: CompilerMisraRules04)
Options for 'ICC8051' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到CompilerMisraRules04,删去
...
2.2.3 unknown name: CompilerMisraRules04
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'ICC8051': (Registry: unknown name: CompilerMisraRules04)
Options for 'ICC8051' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到CompilerMisraRules04,删去
...
2.3 XLINK
2.3.1 'Settings 'XLINK': unsupported vers
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'XLINK':
The format of this file is not supported by this version of the workbench. It appears to have been written by a newer version of the workbench.
Diagnostics: 'Settings 'XLINK': unsupported version - '.
Options for 'XLINK' will be set to default. Creating backup of original project file.
(2)解决
同2.1.1,找一个IAR现版本可以找开的工程文件(或者自己创建一个工程文件),查看XLINK的版本,并将工程文件的版本改成可支持的版本,如下图所示:
2.3.2 unknown name: Linker Far22 Heap Size
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'XLINK': (Registry: unknown name: Linker Far22 Heap Size)
Options for 'XLINK' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到Linker Far22 Heap Size,删去
...
2.3.3 unknown name: Linker Far22 Heap S
(1)错误提示
LOAD: Configuration 'ContikiBankedRelease' in the project 'ContikiCC253xProj' contains broken options for tool 'XLINK': (Registry: unknown name: Linker Far22 Heap Size)
Options for 'XLINK' will be set to default. Creating backup of original project file.
(2)解决
同2.1.2,在.ewp文件找到Linker Far22 Heap Size,删去
...
三、遗留问题及诡异方法
打开eww文件,还提示图2的The project file * was created by a newer version of project and cannot be opened、图3的The project * could not be open的警告,但Build区域没有任何信息。还是打不开,我估计是版本跨度太大,换个老一点的版本试试。如果您有更好的方法,烦您告诉我[email protected],谢谢!
================分隔线=====================
最后,我找到了一种很诡异的方法解决这个问题。即在不同目录创建新的工作区,创建新的工程,将工作区和工程名称与版本不兼容的IAR相同(在本例为ContikiCC2530Port),而后将修改好的ContikiCC2530Port.ewp(注:.eww、.ewd、.dep文件不拷贝,只拷贝ewp文件)和项目相关文件(注:不包括Debug、Release、settings文件夹)拷贝到新创建工程的目录。问题解决:-)不禁感慨,编程世界真美好!