1
0

rtconfig.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import os
  2. import platform
  3. # toolchains options
  4. ARCH='risc-v'
  5. CPU='nuclei'
  6. CROSS_TOOL='gcc'
  7. if os.getenv('RTT_CC'):
  8. CROSS_TOOL = os.getenv('RTT_CC')
  9. if CROSS_TOOL == 'gcc':
  10. PLATFORM = 'gcc'
  11. if platform.system().lower() == "windows":
  12. EXEC_PATH = 'D:/NucleiStudio/toolchain/gcc/bin'
  13. else:
  14. EXEC_PATH = '~/NucleiStudio/toolchain/gcc/bin'
  15. if os.path.exists(EXEC_PATH) == False:
  16. print("Warning: Toolchain path %s doesn't exist, assume it is already in PATH" % EXEC_PATH)
  17. EXEC_PATH = '' # Don't set path if not exist
  18. else:
  19. print("CROSS_TOOL = %s not yet supported" % CROSS_TOOL)
  20. if os.getenv('RTT_EXEC_PATH'):
  21. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  22. BUILD = 'debug'
  23. # Fixed configurations below
  24. NUCLEI_SDK_SOC = "demosoc"
  25. NUCLEI_SDK_BOARD = "nuclei_fpga_eval"
  26. # Configurable options below
  27. # DOWNLOAD: https://doc.nucleisys.com/nuclei_sdk/develop/buildsystem.html#download
  28. NUCLEI_SDK_DOWNLOAD = "ilm"
  29. # CORE: See https://doc.nucleisys.com/nuclei_sdk/develop/buildsystem.html#core
  30. NUCLEI_SDK_CORE = "nx600"
  31. if PLATFORM == 'gcc':
  32. # toolchains
  33. PREFIX = 'riscv-nuclei-elf-'
  34. CC = PREFIX + 'gcc'
  35. CXX = PREFIX + 'g++'
  36. AS = PREFIX + 'gcc'
  37. AR = PREFIX + 'ar'
  38. LINK = PREFIX + 'gcc'
  39. GDB = PREFIX + 'gdb'
  40. TARGET_EXT = 'elf'
  41. SIZE = PREFIX + 'size'
  42. OBJDUMP = PREFIX + 'objdump'
  43. OBJCPY = PREFIX + 'objcopy'
  44. CFLAGS = ' -ffunction-sections -fdata-sections -fno-common '
  45. AFLAGS = CFLAGS
  46. LFLAGS = ' --specs=nano.specs --specs=nosys.specs -nostartfiles -Wl,--gc-sections '
  47. LFLAGS += ' -Wl,-cref,-Map=rtthread.map'
  48. LFLAGS += ' -u _isatty -u _write -u _sbrk -u _read -u _close -u _fstat -u _lseek '
  49. CPATH = ''
  50. LPATH = ''
  51. LIBS = ['stdc++']
  52. if BUILD == 'debug':
  53. CFLAGS += ' -O2 -ggdb'
  54. AFLAGS += ' -ggdb'
  55. else:
  56. CFLAGS += ' -O2 -Os'
  57. CXXFLAGS = CFLAGS
  58. DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtt.asm\n'
  59. POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'
  60. def dist_handle(BSP_ROOT, dist_dir):
  61. import sys
  62. cwd_path = os.getcwd()
  63. sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools'))
  64. from sdk_dist import dist_do_building
  65. dist_do_building(BSP_ROOT, dist_dir)