Răsfoiți Sursa

add armclang support

shuobatian 4 ani în urmă
părinte
comite
791527caca

+ 33 - 0
bsp/stm32/stm32l475-atk-pandora/rtconfig.py

@@ -94,6 +94,39 @@ elif PLATFORM == 'armcc':
 
     POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
 
+elif PLATFORM == 'armclang':
+    # toolchains
+    CC = 'armclang'
+    CXX = 'armclang'
+    AS = 'armasm'
+    AR = 'armar'
+    LINK = 'armlink'
+    TARGET_EXT = 'axf'
+
+    DEVICE = ' --cpu Cortex-M4.fp '
+    CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99'
+    AFLAGS = DEVICE + ' --apcs=interwork '
+    LFLAGS = DEVICE + ' --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict --scatter "board\linker_scripts\link.sct"'
+    CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCLANG/include'
+    LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCLANG/lib'
+
+    CFLAGS += ' -D__MICROLIB '
+    AFLAGS += ' --pd "__MICROLIB SETA 1" '
+    LFLAGS += ' --library_type=microlib '
+    EXEC_PATH += '/ARM/ARMCLANG/bin/'
+
+    if BUILD == 'debug':
+        CFLAGS += ' -g -O0'
+        AFLAGS += ' -g'
+    else:
+        CFLAGS += ' -O2'
+
+
+    CXXFLAGS = CFLAGS 
+    CFLAGS += ' -std=c99'
+
+    POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET'
+
 elif PLATFORM == 'iar':
     # toolchains
     CC = 'iccarm'

+ 4 - 1
components/drivers/spi/SConscript

@@ -28,7 +28,10 @@ if GetDepend('RT_USING_SFUD'):
     if rtconfig.CROSS_TOOL == 'gcc':
         LOCAL_CCFLAGS += ' -std=c99'
     elif rtconfig.CROSS_TOOL == 'keil':
-        LOCAL_CCFLAGS += ' --c99'
+        if rtconfig.PLATFORM == 'armcc':
+            LOCAL_CCFLAGS += ' --c99'
+        elif rtconfig.PLATFORM == 'armclang':
+            LOCAL_CCFLAGS += ' -std=c99'
 
 src += src_device
 

+ 3 - 0
libcpu/arm/cortex-m4/SConscript

@@ -11,6 +11,9 @@ CPPPATH = [cwd]
 if rtconfig.PLATFORM == 'armcc':
     src += Glob('*_rvds.S')
 
+if rtconfig.PLATFORM == 'armclang':
+    src += Glob('*_rvds.S')
+
 if rtconfig.PLATFORM == 'gcc':
     src += Glob('*_init.S')
     src += Glob('*_gcc.S')