text: import os
  import platform
  
  
  # toolchains options
  ARCH        ='risc-v'
  CPU         ='bluetrum'
  CROSS_TOOL  ='gcc'
  
  if os.getenv('RTT_ROOT'):
      RTT_ROOT = os.getenv('RTT_ROOT')
  else:
      RTT_ROOT = r'../../..'
  
  if os.getenv('RTT_CC'):
      CROSS_TOOL = os.getenv('RTT_CC')
  
  if  CROSS_TOOL == 'gcc':
      PLATFORM    = 'gcc'
      EXEC_PATH   = r'D:/program_files/programming/RT-ThreadStudio/repo/Extract/ToolChain_Support_Packages/RISC-V/RISC-V-GCC/10.1.0/bin'
  else:
      print('Please make sure your toolchains is GNU GCC!')
      exit(0)
  
  if os.getenv('RTT_EXEC_PATH'):
      EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  
  BUILD = 'release'
  
  if PLATFORM == 'gcc':
      # toolchains
      PREFIX  = 'riscv64-unknown-elf-'
      CC      = PREFIX + 'gcc'
      CXX     = PREFIX + 'g++'
      AS      = PREFIX + 'gcc'
      AR      = PREFIX + 'ar'
      LINK    = PREFIX + 'gcc'
      TARGET_EXT = 'elf'
      SIZE    = PREFIX + 'size'
      OBJDUMP = PREFIX + 'objdump'
      OBJCPY  = PREFIX + 'objcopy'
  
      DEVICE  = ' -mcmodel=medany -march=rv32imc -mabi=ilp32 -msave-restore'
      CFLAGS = DEVICE + ' -D_USE_LONG_TIME_T'
      AFLAGS  = ' -c' + DEVICE + ' -x assembler-with-cpp'
      LFLAGS  = DEVICE + ' -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T link.lds'
      CPATH   = ''
      LPATH   = ''
  
      if BUILD == 'debug':
          CFLAGS += ' -O0 -ggdb'
          AFLAGS += ' -ggdb'
      else:
          CFLAGS += ' -Os'
  
      CXXFLAGS = CFLAGS
  
  DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtt.asm\n'
  POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
  
  if "Windows" in platform.platform():
      POST_ACTION += './riscv32-elf-xmaker -b rtthread.xm\n'
      POST_ACTION += './riscv32-elf-xmaker -b download.xm\n'
  
  def dist_handle(BSP_ROOT, dist_dir):
      import sys
      cwd_path = os.getcwd()
      sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
      from sdk_dist import dist_do_building
      dist_do_building(BSP_ROOT, dist_dir)
  