summaryrefslogtreecommitdiff
path: root/tools/iar.py
diff options
context:
space:
mode:
authorliang yongxiang <[email protected]>2018-04-07 00:37:44 +0800
committerliang yongxiang <[email protected]>2018-04-07 00:47:27 +0800
commit2545c3854ea82b6d93dc8be7c1fffb4863b87498 (patch)
treec2be650c963a04a1287ec09cef5964db263b2404 /tools/iar.py
parent1d878887c03ade06284c9a193d815af089513978 (diff)
[Tools] add IAR get version support
Diffstat (limited to 'tools/iar.py')
-rw-r--r--tools/iar.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tools/iar.py b/tools/iar.py
index b5a012e4c5..09271ba4eb 100644
--- a/tools/iar.py
+++ b/tools/iar.py
@@ -156,3 +156,38 @@ def IARProject(target, script):
out.close()
IARWorkspace(target)
+
+def IARVersion():
+ import subprocess
+ import re
+
+ def IARPath():
+ import rtconfig
+
+ # set environ
+ old_environ = os.environ
+ os.environ['RTT_CC'] = 'iar'
+ reload(rtconfig)
+
+ # get iar path
+ path = rtconfig.EXEC_PATH
+
+ # restore environ
+ os.environ = old_environ
+ reload(rtconfig)
+
+ return path
+
+ path = IARPath();
+
+ if os.path.exists(path):
+ cmd = os.path.join(path, 'iccarm.exe')
+ else:
+ print('Get IAR version error. Please update IAR installation path in rtconfig.h!')
+ return "0.0"
+
+ child = subprocess.Popen([cmd, '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
+ stdout, stderr = child.communicate()
+
+ # example stdout: IAR ANSI C/C++ Compiler V8.20.1.14183/W32 for ARM
+ return re.search('[\d\.]+', stdout).group(0) \ No newline at end of file