rtconfig.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os
  2. # toolchains options
  3. ARCH ='c-sky'
  4. CPU ='ck802'
  5. CROSS_TOOL ='gcc'
  6. if os.getenv('RTT_CC'):
  7. CROSS_TOOL = os.getenv('RTT_CC')
  8. if CROSS_TOOL == 'gcc':
  9. PLATFORM = 'gcc'
  10. EXEC_PATH = r'F:\c-sky\CSKY\MinGW\csky-abiv2-elf-toolchain\bin'
  11. # EXEC_PATH = r'/home/tanek/c-sky/CK802/toolchain/csky-abiv2-elf-tools-x86_64-minilibc-20161211/bin'
  12. else:
  13. print 'Please make sure your toolchains is GNU GCC!'
  14. exit(0)
  15. if os.getenv('RTT_EXEC_PATH'):
  16. EXEC_PATH = os.getenv('RTT_EXEC_PATH')
  17. # BUILD = 'debug'
  18. BUILD = 'release'
  19. if PLATFORM == 'gcc':
  20. # toolchains
  21. PREFIX = 'csky-abiv2-elf-'
  22. CC = PREFIX + 'gcc'
  23. CXX = PREFIX + 'g++'
  24. AS = PREFIX + 'gcc'
  25. AR = PREFIX + 'ar'
  26. LINK = PREFIX + 'g++'
  27. TARGET_EXT = 'elf'
  28. SIZE = PREFIX + 'size'
  29. OBJDUMP = PREFIX + 'objdump'
  30. OBJCPY = PREFIX + 'objcopy'
  31. STRIP = PREFIX + 'strip'
  32. if CPU == 'ck802':
  33. DEVICE = ' -mcpu=ck802'
  34. CFLAGS = DEVICE + ' -DCONFIG_CPU_CK802 -c -g -ffunction-sections -Wall -mistack -mlittle-endian'
  35. AFLAGS = ' -c' + DEVICE + ' -EL -x assembler-with-cpp'
  36. LFLAGS = DEVICE + ' -EL -Wl,--gc-sections,-Map=rtthread_ck802.map,-cref,-u,Reset_Handler -T gcc_csky.ld'
  37. CPATH = ''
  38. LPATH = ''
  39. if BUILD == 'debug':
  40. CFLAGS += ' -O0 -gdwarf-2'
  41. AFLAGS += ' -gdwarf-2'
  42. else:
  43. CFLAGS += ' -O2'
  44. CXXFLAGS = CFLAGS
  45. M_CFLAGS = DEVICE + ' -EL -G0 -O2 -mno-abicalls -fno-common -fno-exceptions -fno-omit-frame-pointer -mlong-calls -fno-pic '
  46. M_CXXFLAGS = M_CFLAGS
  47. M_LFLAGS = DEVICE + ' -EL -r -Wl,--gc-sections,-z,max-page-size=0x4' +\
  48. ' -nostartfiles -static-libgcc'
  49. M_POST_ACTION = STRIP + ' -R .hash $TARGET\n' + SIZE + ' $TARGET \n'
  50. DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtt.asm\n'
  51. POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n'