1import os 2 3# toolchains options 4ARCH='risc-v' 5CPU='bumblebee' 6CROSS_TOOL='gcc' 7 8# bsp lib config 9BSP_LIBRARY_TYPE = None 10 11if os.getenv('RTT_CC'): 12 CROSS_TOOL = os.getenv('RTT_CC') 13if os.getenv('RTT_ROOT'): 14 RTT_ROOT = os.getenv('RTT_ROOT') 15 16# cross_tool provides the cross compiler 17# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR 18if CROSS_TOOL == 'gcc': 19 PLATFORM = 'gcc' 20 EXEC_PATH = EXEC_PATH = r'D:/gcc/xpack-riscv-none-embed-gcc-10.2.0-1.2/bin' 21else: 22 print('Please make sure your toolchains is GNU GCC!') 23 exit(0) 24 25if os.getenv('RTT_EXEC_PATH'): 26 EXEC_PATH = os.getenv('RTT_EXEC_PATH') 27 28CORE = 'risc-v' 29BUILD = 'debug' 30MAP_FILE = 'rtthread.map' 31LINK_FILE = '../libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds' 32 33if PLATFORM == 'gcc': 34 # toolchains 35 PREFIX = 'riscv-none-embed-' 36 CC = PREFIX + 'gcc' 37 AS = PREFIX + 'gcc' 38 AR = PREFIX + 'ar' 39 CXX = PREFIX + 'g++' 40 LINK = PREFIX + 'gcc' 41 TARGET_EXT = 'elf' 42 SIZE = PREFIX + 'size' 43 OBJDUMP = PREFIX + 'objdump' 44 OBJCPY = PREFIX + 'objcopy' 45 46 DEVICE = ' -march=rv32imac -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -L. -nostartfiles -lc ' 47 CFLAGS = DEVICE 48 CFLAGS += ' -save-temps=obj' 49 AFLAGS = '-c'+ DEVICE + ' -x assembler-with-cpp' 50 AFLAGS += ' -Iplatform -Ilibraries/RISCV/include -Ilibraries/RISCV/env_Eclipse' 51 LFLAGS = DEVICE 52 LFLAGS += ' -Wl,--gc-sections,-cref,-Map=' + MAP_FILE 53 LFLAGS += ' -T ' + LINK_FILE 54 LFLAGS += ' -Wl,-wrap=memset' 55 56 CPATH = '' 57 LPATH = '' 58 59 if BUILD == 'debug': 60 CFLAGS += ' -O0 -g3' 61 AFLAGS += ' -g3' 62 else: 63 CFLAGS += ' -O2' 64 65 CXXFLAGS = CFLAGS 66 67 POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' 68 69def dist_handle(BSP_ROOT, dist_dir): 70 import sys 71 cwd_path = os.getcwd() 72 sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) 73 from sdk_dist import dist_do_building 74 dist_do_building(BSP_ROOT, dist_dir) 75