rtconfig.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import os
  2. ARCH = 'risc-v'
  3. CPU = 'e310'
  4. # toolchains options
  5. CROSS_TOOL = 'gcc'
  6. #------- toolchains path -------------------------------------------------------
  7. if os.getenv('RTT_CC'):
  8. CROSS_TOOL = os.getenv('RTT_CC')
  9. if CROSS_TOOL == 'gcc':
  10. PLATFORM = 'gcc'
  11. # EXEC_PATH = '/home/tanek/risc-v/e300/riscv64-unknown-elf-gcc-20170612-x86_64-linux-centos6/bin'
  12. EXEC_PATH = '/home/tanek/risc-v/e300/riscv64-unknown-elf-gcc-20171231-x86_64-linux-centos6/bin'
  13. if os.getenv('RTT_EXEC_PATH'):
  14. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  15. #BUILD = 'debug'
  16. BUILD = 'release'
  17. CORE = 'risc-v'
  18. MAP_FILE = 'rtthread.map'
  19. LINK_FILE = './freedom-e-sdk/bsp/env/freedom-e300-hifive1/flash.lds'
  20. TARGET_NAME = 'rtthread.bin'
  21. #------- GCC settings ----------------------------------------------------------
  22. if PLATFORM == 'gcc':
  23. # toolchains
  24. PREFIX = 'riscv64-unknown-elf-'
  25. CC = PREFIX + 'gcc'
  26. AS = PREFIX + 'gcc'
  27. AR = PREFIX + 'ar'
  28. LINK = PREFIX + 'gcc'
  29. TARGET_EXT = 'elf'
  30. SIZE = PREFIX + 'size'
  31. OBJDUMP = PREFIX + 'objdump'
  32. OBJCPY = PREFIX + 'objcopy'
  33. DEVICE = ' -march=rv32imac -mabi=ilp32 -DUSE_PLIC -DUSE_M_TIME -DNO_INIT -mcmodel=medany -msmall-data-limit=8 -g -L. -nostartfiles -lc '
  34. CFLAGS = DEVICE
  35. CFLAGS += ' -save-temps=obj'
  36. AFLAGS = '-c'+ DEVICE + ' -x assembler-with-cpp'
  37. AFLAGS += ' -Iplatform -Ifreedom-e-sdk/bsp/include -Ifreedom-e-sdk/bsp/env'
  38. LFLAGS = DEVICE
  39. LFLAGS += ' -Wl,--gc-sections,-cref,-Map=' + MAP_FILE
  40. LFLAGS += ' -T ' + LINK_FILE
  41. LFLAGS += ' -Wl,-wrap=memset'
  42. CPATH = ''
  43. LPATH = ''
  44. if BUILD == 'debug':
  45. CFLAGS += ' -O0 -gdwarf-2'
  46. AFLAGS += ' -gdwarf-2'
  47. else:
  48. CFLAGS += ' -O2'
  49. POST_ACTION = OBJCPY + ' -O binary $TARGET ' + TARGET_NAME + '\n'
  50. POST_ACTION += SIZE + ' $TARGET\n'