mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-15 20:59:22 +08:00
08656c3034
1. 新增 crypto, onchip_Flash, soft_i2c 驱动 2. 新增 oneshot 配网功能 3. 完善 I2C, UART, SPI, WIFI 等基本驱动 4. 更新 Kconfig 配置,用户交互更加友好 5. 屏蔽 末尾 80 内存,无法作为栈使用。
142 lines
4.2 KiB
Python
142 lines
4.2 KiB
Python
import os
|
|
import sys
|
|
|
|
# toolchains options
|
|
ARCH='arm'
|
|
CPU='cortex-m3'
|
|
CROSS_TOOL='gcc'
|
|
|
|
if os.getenv('RTT_CC'):
|
|
CROSS_TOOL = os.getenv('RTT_CC')
|
|
if os.getenv('RTT_ROOT'):
|
|
RTT_ROOT = os.getenv('RTT_ROOT')
|
|
|
|
# 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 = 'E:/tool/env/tools/gnu_gcc/arm_gcc/mingw/bin'
|
|
elif CROSS_TOOL == 'keil':
|
|
PLATFORM = 'armcc'
|
|
EXEC_PATH = 'C:/Keil'
|
|
elif CROSS_TOOL == 'iar':
|
|
PLATFORM = 'iar'
|
|
EXEC_PATH = 'C:/Program Files/IAR Systems/Embedded Workbench 6.0 Evaluation'
|
|
|
|
if os.getenv('RTT_EXEC_PATH'):
|
|
EXEC_PATH = os.getenv('RTT_EXEC_PATH')
|
|
|
|
BUILD = 'debug'
|
|
|
|
if os.path.exists(os.path.abspath('./') + '/drivers'):
|
|
gcc_linkscripts_path = 'drivers/linker_scripts/link.lds'
|
|
armcc_linkscripts_path = 'drivers/linker_scripts/link.sct'
|
|
iar_linkscripts_path = 'drivers/linker_scripts/link.icf'
|
|
else:
|
|
gcc_linkscripts_path = '../../drivers/linker_scripts/link.lds'
|
|
armcc_linkscripts_path = '../../drivers/linker_scripts/link.sct'
|
|
iar_linkscripts_path = '../../drivers/linker_scripts/link.icf'
|
|
|
|
if PLATFORM == 'gcc':
|
|
# toolchains
|
|
PREFIX = 'arm-none-eabi-'
|
|
CC = PREFIX + 'gcc'
|
|
AS = PREFIX + 'gcc'
|
|
AR = PREFIX + 'ar'
|
|
CXX = PREFIX + 'g++'
|
|
LINK = PREFIX + 'gcc'
|
|
TARGET_EXT = 'elf'
|
|
SIZE = PREFIX + 'size'
|
|
OBJDUMP = PREFIX + 'objdump'
|
|
OBJCPY = PREFIX + 'objcopy'
|
|
NM = PREFIX + 'nm'
|
|
|
|
DEVICE = ' -mcpu=cortex-m3 -mthumb -ffunction-sections -fdata-sections'
|
|
CFLAGS = DEVICE + ' -std=gnu99 -w -fno-common -fomit-frame-pointer -fno-short-enums -fsigned-char'
|
|
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb '
|
|
LFLAGS = DEVICE + ' -lm -lgcc -lc' + ' -g --specs=nano.specs -nostartfiles -Wl,-Map=rtthread-w60x.map -Os -Wl,--gc-sections -Wl,--cref -Wl,--entry=Reset_Handler -Wl,--no-enum-size-warning -Wl,--no-wchar-size-warning -T ' + gcc_linkscripts_path
|
|
|
|
CPATH = ''
|
|
LPATH = ''
|
|
|
|
if BUILD == 'debug':
|
|
CFLAGS += ' -O0 -gdwarf-2 -g -Wall'
|
|
AFLAGS += ' -gdwarf-2'
|
|
else:
|
|
CFLAGS += ' -O2'
|
|
|
|
POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
|
|
POST_ACTION += 'python ./makeimg.py'
|
|
|
|
elif PLATFORM == 'armcc':
|
|
# toolchains
|
|
CC = 'armcc'
|
|
AS = 'armasm'
|
|
AR = 'armar'
|
|
LINK = 'armlink'
|
|
TARGET_EXT = 'axf'
|
|
|
|
DEVICE = ' --cpu=Cortex-M3'
|
|
CFLAGS = DEVICE + ' --apcs=interwork --c99 --gnu'
|
|
AFLAGS = DEVICE + ' --apcs=interwork '
|
|
LFLAGS = DEVICE + ' --scatter ' + armcc_linkscripts_path + ' --info sizes --info totals --info unused --info veneers --list rt-thread.map --strict'
|
|
LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib'
|
|
|
|
EXEC_PATH += '/ARM/ARMCC/bin/'
|
|
|
|
if BUILD == 'debug':
|
|
CFLAGS += ' -g -O0'
|
|
AFLAGS += ' -g'
|
|
else:
|
|
CFLAGS += ' -O2'
|
|
|
|
POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET \n'
|
|
POST_ACTION += 'python ./makeimg.py'
|
|
|
|
elif PLATFORM == 'iar':
|
|
# toolchains
|
|
CC = 'iccarm'
|
|
AS = 'iasmarm'
|
|
AR = 'iarchive'
|
|
LINK = 'ilinkarm'
|
|
TARGET_EXT = 'out'
|
|
|
|
DEVICE = '-Dewarm'
|
|
|
|
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-M3'
|
|
CFLAGS += ' -e'
|
|
CFLAGS += ' --fpu=None'
|
|
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-M3'
|
|
AFLAGS += ' --fpu None'
|
|
AFLAGS += ' -S'
|
|
|
|
if BUILD == 'debug':
|
|
CFLAGS += ' --debug'
|
|
CFLAGS += ' -On'
|
|
else:
|
|
CFLAGS += ' -Oh'
|
|
|
|
LFLAGS = ' --config ' + iar_linkscripts_path
|
|
LFLAGS += ' --entry __iar_program_start'
|
|
|
|
EXEC_PATH = EXEC_PATH + '/arm/bin/'
|
|
POST_ACTION = 'ielftool --bin $TARGET rtthread.bin \n'
|
|
POST_ACTION += 'python ./makeimg.py'
|