summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArdaFu <[email protected]>2018-05-13 23:23:25 +0800
committerArdaFu <[email protected]>2018-05-13 23:23:25 +0800
commit45645be9d24dbac576f72bf685801ad7eb6f0e2a (patch)
tree0ba4187ed1cd5a317cd06a47e6ca3adf150a30d5
parentab33cd3110a4b303c7c934f3da84f9c64c4ebb73 (diff)
[BSP] TM4C129X: Modify rtconfig.py to support compile from IAR-SCONS
-rw-r--r--bsp/tm4c129x/libraries/SConscript3
-rw-r--r--bsp/tm4c129x/rtconfig.py76
2 files changed, 63 insertions, 16 deletions
diff --git a/bsp/tm4c129x/libraries/SConscript b/bsp/tm4c129x/libraries/SConscript
index d1ed0b9383..90f37cfc86 100644
--- a/bsp/tm4c129x/libraries/SConscript
+++ b/bsp/tm4c129x/libraries/SConscript
@@ -16,8 +16,9 @@ elif rtconfig.CROSS_TOOL == 'iar':
src += ['startup/startup_ewarm.c']
CPPPATH = [cwd, cwd + '/inc', cwd + '/driverlib']
+CCFLAGS = ' --diag_suppress=pe177'
CPPDEFINES = [rtconfig.PART_TYPE]
-group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, CCFLAGS = CCFLAGS)
Return('group')
diff --git a/bsp/tm4c129x/rtconfig.py b/bsp/tm4c129x/rtconfig.py
index 79af54998d..8db01c509b 100644
--- a/bsp/tm4c129x/rtconfig.py
+++ b/bsp/tm4c129x/rtconfig.py
@@ -1,4 +1,4 @@
-# BSP Note: For TI EK-TM4C1294XL Tiva C Series Connected LancuhPad (REV D)
+# BSP Note: For TI EK-TM4C1294XL Tiva C Series Connected LancuhPad (REV D)
import os
@@ -8,26 +8,24 @@ CPU='cortex-m4'
CROSS_TOOL='keil'
if os.getenv('RTT_CC'):
- CROSS_TOOL = os.getenv('RTT_CC')
-
+ CROSS_TOOL = os.getenv('RTT_CC')
+
#device options
PART_TYPE = 'PART_TM4C129XNCZAD'
# cross_tool provides the cross compiler
# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
if CROSS_TOOL == 'gcc':
- PLATFORM = 'gcc'
- EXEC_PATH = r'D:\ArdaArmTools\Sourcery_Lite\bin'
+ PLATFORM = 'gcc'
+ EXEC_PATH = r'D:\ArdaArmTools\Sourcery_Lite\bin'
elif CROSS_TOOL == 'keil':
- PLATFORM = 'armcc'
- EXEC_PATH = r'D:\Keil_v5'
+ PLATFORM = 'armcc'
+ EXEC_PATH = r'C:\Keil_v5'
elif CROSS_TOOL == 'iar':
- print('================ERROR============================')
- print('Not support iar yet!')
- print('=================================================')
- exit(0)
-
+ PLATFORM = 'iar'
+ EXEC_PATH = 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0'
+
if os.getenv('RTT_EXEC_PATH'):
- EXEC_PATH = os.getenv('RTT_EXEC_PATH')
+ EXEC_PATH = os.getenv('RTT_EXEC_PATH')
#BUILD = 'debug'
BUILD = 'release'
@@ -43,7 +41,7 @@ if PLATFORM == 'gcc':
SIZE = PREFIX + 'size'
OBJDUMP = PREFIX + 'objdump'
OBJCPY = PREFIX + 'objcopy'
-
+
DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections'
CFLAGS = DEVICE + ' -std=c99 -Dgcc'
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
@@ -75,7 +73,7 @@ elif PLATFORM == 'armcc':
CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/INC'
LFLAGS += ' --libpath ' + EXEC_PATH + '/ARM/ARMCC/LIB'
-
+
EXEC_PATH += '/arm/armcc/bin/'
if BUILD == 'debug':
@@ -85,3 +83,51 @@ elif PLATFORM == 'armcc':
CFLAGS += ' -O2'
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
+
+elif PLATFORM == 'iar':
+ # toolchains
+ CC = 'iccarm'
+ AS = 'iasmarm'
+ AR = 'iarchive'
+ LINK = 'ilinkarm'
+ TARGET_EXT = 'out'
+
+ DEVICE = '-Dewarm' # + ' -D' + PART_TYPE
+
+ CFLAGS = DEVICE
+ CFLAGS += ' --diag_suppress Pa050'
+ CFLAGS += ' --no_cse'
+ CFLAGS += ' --no_unroll'
+ CFLAGS += ' --no_inline'
+ CFLAGS += ' --no_code_motion'
+ CFLAGS += ' --no_tbaa'
+ CFLAGS += ' --no_clustering'
+ CFLAGS += ' --no_scheduling'
+
+ CFLAGS += ' --endian=little'
+ CFLAGS += ' --cpu=Cortex-M4'
+ CFLAGS += ' -e'
+ CFLAGS += ' --fpu=VFPv4_sp'
+ CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"'
+ CFLAGS += ' --silent'
+
+ AFLAGS = DEVICE
+ AFLAGS += ' -s+'
+ AFLAGS += ' -w+'
+ AFLAGS += ' -r'
+ AFLAGS += ' --cpu Cortex-M4'
+ AFLAGS += ' --fpu VFPv4_sp'
+ AFLAGS += ' -S'
+
+ if BUILD == 'debug':
+ CFLAGS += ' --debug'
+ CFLAGS += ' -On'
+ else:
+ CFLAGS += ' -Oh'
+
+ LFLAGS = ' --config "tm4c_rom.icf"'
+ LFLAGS += ' --entry __iar_program_start'
+ #LFLAGS += ' --silent'
+
+ EXEC_PATH = EXEC_PATH + '/arm/bin/'
+ POST_ACTION = '' \ No newline at end of file